当我导入 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
到目前为止我发现的所有内容都已过时,并且不适用于我的情况。
CSS
导入,您需要通过配置显式忽略导入。CSS
导入,您需要使用像 Babel
这样的预处理器进行转译,然后忽略 CSS
导入。npm install @babel/core @babel/preset-env @babel/register ignore-styles --save-dev
.babelrc
文件{
"presets": ["@babel/preset-env"]
}
test/setup.js
文件以忽略CSSrequire('ignore-styles');
require('@babel/register')({
extensions: ['.js', '.jsx'],
});
package.json
"scripts": {
"test": "mocha --require ./test/setup.js"
}