【问题标题】:Error "ReferenceError: pathsToModuleNameMapper is not defined" when trying to run jest尝试运行 jest 时出现错误“ReferenceError:pathsToModuleNameMapper 未定义”
【发布时间】:2021-02-07 09:13:55
【问题描述】:

我正在尝试在使用 webpack、babel、酶和 jasmine(以及其他东西)的 javascript react.js 项目中运行 jest,但我看到了错误:

ReferenceError:pathsToModuleNameMapper 未定义

这是控制台输出:

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"

【问题讨论】:

  • 错误清楚地表明 hipocampo/jest.config.js 有问题

标签: javascript reactjs unit-testing webpack jestjs


【解决方案1】:

问题是我之前已经复制到项目 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"

错误消息消失了。

【讨论】:

    猜你喜欢
    • 2017-07-16
    • 1970-01-01
    • 2018-05-29
    • 1970-01-01
    • 2018-10-03
    • 2017-07-20
    • 2013-09-17
    • 2017-04-04
    • 2018-05-28
    相关资源
    最近更新 更多