Javascript 获取jest以仅转换模块中的某些文件类型
我目前有一个项目使用jest进行单元测试。我遇到的问题是,其中一个依赖模块需要.css文件:Javascript 获取jest以仅转换模块中的某些文件类型,javascript,node.js,jestjs,babeljs,babel-jest,Javascript,Node.js,Jestjs,Babeljs,Babel Jest,我目前有一个项目使用jest进行单元测试。我遇到的问题是,其中一个依赖模块需要.css文件: ./node_modules/problem-module/dist/problem-module.js: line 0: require("./problem-module.css"); 我将jest配置为不忽略用于转换的特定模块,并用所需的CSS解决了这个问题。尽管如此,现在测试失败了,因为jest试图用babel jest转换模块中的所有.js文件,这些文件在模块发布之前都是通过babel
./node_modules/problem-module/dist/problem-module.js:
line 0: require("./problem-module.css");
我将jest配置为不忽略用于转换的特定模块,并用所需的CSS解决了这个问题。尽管如此,现在测试失败了,因为jest试图用babel jest转换模块中的所有.js文件,这些文件在模块发布之前都是通过babel运行的。这会导致类似以下情况的错误:
TypeError: (0 , problemModuleFunction.default) is not a function
我的jest配置:
"jest": {
"testEnvironment": "jsdom",
"testMatch": [
"<rootDir>/src/**/*.test.js"
],
"moduleDirectories": [
"<rootDir>/src",
"<rootDir>/node_modules"
],
"moduleNameMapper": {
"\\.(css|scss)$": "<rootDir>/__mocks__/styleMock.js",
"\\.(jpg|gif|ttf|eot|svg)$": "<rootDir>/__mocks__/fileMock.js"
},
"transform": {
"^((?!mock).)*.(js|jsx)$": "babel-jest",
"\\.(css|styl|less|sass|scss)$": "<rootDir>/node_modules/jest-css-modules-transform"
},
"transformIgnorePatterns": [
"node_modules/(?!(problem-module))"
],
"setupFilesAfterEnv": [
"<rootDir>/setupTests.js"
],
"moduleFileExtensions": [
"css",
"scss",
"js",
"json",
"jsx"
]
},
“开玩笑”:{
“测试环境”:“jsdom”,
“测试匹配”:[
“/src/***.test.js”
],
“模块目录”:[
“/src”,
“/node\u模块”
],
“moduleNameMapper”:{
“\\(css | scss)$”:“/\uu mocks\uuu/styleMock.js”,
“\\(jpg | gif | ttf | eot | svg)$”:“/\uu mocks\uuu/fileMock.js”
},
“转变”:{
“^((?!mock)。*(js | jsx)$”:“巴别塔笑话”,
“\\(css | styl | less | sass | scss)$”:“/node_modules/jest css modules transform”
},
“transformIgnorePatterns”:[
“节点_模块/(?!(问题模块))”
],
“SetupFileAfterEnv”:[
“/setupTests.js”
],
“moduleFileExtensions”:[
“css”,
“scss”,
“js”,
“json”,
“jsx”
]
},
确保此模块中的CSS文件正确映射而不转换任何JS文件的最佳方法是什么