Onz*_*nza 8 javascript reactjs webpack jestjs
我有一个问题,在其中无论我做什么,它不断尝试解析CSS文件作为JavaScript.
使用webpack正确构建文件.
我有以下配置的开玩笑
"jest": {
"rootDir": "./src",
"moduleNameMapper": {
"^.*[.](css|CSS)$": "../jest/styleMock.js"
}
},
Run Code Online (Sandbox Code Playgroud)
我还尝试了一个脚本预处理器来从导入中剥离css:
"jest": {
"rootDir": "./src",
"scriptPreprocessor": "../node_modules/jest-css-modules"
},
Run Code Online (Sandbox Code Playgroud)
它不断抛出错误.
({"Object.<anonymous>":function(module,exports,require,__dirname,__filename,global,jest){.button {
^
SyntaxError: Unexpected token .
Run Code Online (Sandbox Code Playgroud)
最好的解决方案是moduleNameMapper
在Jest配置中使用一行,如Jest文档中所述.
最小的"忽略css"jest配置package.json
,可能是这样的
"jest": {
"moduleNameMapper": { "\\.(css|less)$": "<rootDir>/assets/css/__mocks__/styleMock.js" }
},
Run Code Online (Sandbox Code Playgroud)
那么styleMock.js就是这个
module.exports = {};
Run Code Online (Sandbox Code Playgroud)
我不知道这是否是最好的方法,但是考虑到我已经在这里停留了一段时间,我正在发布解决方案。
为了修复它,我必须执行两个步骤:
1)@Jonathan Stray解决方案,因此添加一个moduleNameMapper
指向js模拟的指针(有关更多详细信息,请参见他的响应)
2)然后,我必须安装jest-css-modules-transform
插件,并将其添加到package.json
如下所示的jest配置中:
"jest": {
//...
"transform": {
".+\\.(css|styl|less|sass|scss)$": "<rootDir>/node_modules/jest-css-modules-transform",
//...
},
//...
}
Run Code Online (Sandbox Code Playgroud)
我正在使用“jest-css-modules-transform”,它运行良好。
npm i --save-dev jest-css-modules-transform
Run Code Online (Sandbox Code Playgroud)
或用纱线
yarn add -D jest-css-modules-transform
Run Code Online (Sandbox Code Playgroud)
npm i --save-dev jest-css-modules-transform
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4059 次 |
最近记录: |