尝试运行玩笑时出现错误“ ReferenceError:pathsToModuleNameMapper未定义”

时间:2020-10-24 14:52:48

标签: javascript reactjs unit-testing webpack jestjs

我正在尝试在一个使用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"

1 个答案:

答案 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"

错误消息消失了。