我正在尝试在一个使用webpack,babel,ase和jasmine的javascript react.js项目中开玩笑,并且看到错误:
ReferenceError:未定义pathToModuleNameMapper
这是console.output:
macbook-pro:$ ./node_modules/.bin/jest --coverage
ReferenceError: pathsToModuleNameMapper is not defined
at Object.<anonymous> (/Volumes/github-image/hipocampo/jest.config.js:10:21)
at Module._compile (internal/modules/cjs/loader.js:1138:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1158:10)
at Module.load (internal/modules/cjs/loader.js:986:32)
at Function.Module._load (internal/modules/cjs/loader.js:879:14)
at Module.require (internal/modules/cjs/loader.js:1026:19)
at require (internal/modules/cjs/helpers.js:72:18)
at readConfigFileAndSetRootDir (/Volumes/github-image/hipocampo/node_modules/jest/node_modules/jest-config/build/readConfigFileAndSetRootDir.js:119:22)
at readConfig (/Volumes/github-image/hipocampo/node_modules/jest/node_modules/jest-config/build/index.js:217:65)
at readConfigs (/Volumes/github-image/hipocampo/node_modules/jest/node_modules/jest-config/build/index.js:406:32)
这是package.json中最有趣的配置:
"jest": {
"verbose": true,
"moduleNameMapper": {
"\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "<rootDir>/__mocks__/fileMock.js",
"\\.(css|less)$": "<rootDir>/__mocks__/styleMock.js"
},
"moduleDirectories": [
"spec"
]
}
以下是一些软件包版本:
"jest": "26.6.1"
"babel-jest": "26.6.1"
"jasmine": "3.5.0"
"jasmine-enzyme": "7.1.2"
"jasmine-spec-reporter": "5.0.2"
"enzyme": "3.11.0"
"enzyme-adapter-react-16": "1.15.2"
"webpack": "4.42.0"
答案 0 :(得分:0)
问题在于,我早些时候已将其复制到项目jest.config.js中,但我忘记了。它包含以下几行:
const { pathsToModuleNameMapper } = require('ts-jest/utils');
和
moduleNameMapper: pathsToModuleNameMapper(compilerOptions.paths || {}, {
prefix: 'spec/'
我删除了对pathsToModuleNameMapper的引用,并将moduleNameMapper更新为
"moduleNameMapper": {
"\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "spec/mocks/*.js",
"\\.(css|less)$": "spec/mocks/*.js"
错误消息消失了。