如何让node.js忽略css文件

问题描述 投票:0回答:1

当我导入 CSS 文件时,我无法在我的普通 javascript 项目中使用 Mocha 运行测试,因为我无法让 Node 忽略该特定扩展名。

我收到此错误:

TypeError [ERR_UNKNOWN_FILE_EXTENSION]:未知的文件扩展名“.css” 在新的 NodeError 处(节点:内部/错误:405:5) 在 Object.getFileProtocolModuleFormat [作为文件:] (节点:internal/modules/esm/get_format:79:11) 在defaultGetFormat(节点:内部/模块/esm/get_format:124:36) 默认负载(节点:内部/模块/esm/负载:84:20) 在 nextLoad (节点:内部/模块/esm/loader:163:28) 在 ESMLoader.load(节点:内部/模块/esm/loader:603:26) 在 ESMLoader.moduleProvider (节点:内部/模块/esm/loader:457:22) 在新的 ModuleJob 处(节点:内部/模块/esm/module_job:64:26) 在#createModuleJob(节点:内部/模块/esm/loader:480:17) 在 ESMLoader.getModuleJob (节点:内部/模块/esm/loader:434:34) 在异步 ModuleWrap 处。 (节点:内部/模块/esm/module_job:79:21)

这是一个复制问题的示例存储库,希望对您有所帮助:

https://github.com/Marco0491/mocha-issue-simulation

到目前为止我发现的所有内容都已过时,并且不适用于我的情况。

javascript css node.js mocha.js
1个回答
0
投票
  • Nodejs 本身不支持
    CSS
    导入,您需要通过配置显式忽略导入。
  • Mocha 不会处理
    CSS
    导入,您需要使用像
    Babel
    这样的预处理器进行转译,然后忽略
    CSS
    导入。
npm install @babel/core @babel/preset-env @babel/register ignore-styles --save-dev
  • 创建
    .babelrc
    文件
{
  "presets": ["@babel/preset-env"]
}
  • 更新您的
    test/setup.js
    文件以忽略CSS
require('ignore-styles');
require('@babel/register')({
  extensions: ['.js', '.jsx'],
});
  • 更新您的执行脚本
    package.json
"scripts": {
  "test": "mocha --require ./test/setup.js"
}
© www.soinside.com 2019 - 2024. All rights reserved.