Jest 无法找到模块 FileName.css(映射为 identity-obj-proxy)

Jest Could not locate module FileName.css (mapped as identity-obj-proxy)

我一直在尝试为我的 React 项目设置测试环境,但在导入 CSS 文件时我遇到了意外令牌问题。我将 moduleNameMapper 添加到 package.json 来修复它,现在我正面临这个问题。 有谁知道我该怎么做才能解决这个问题?

> myProject@0.0.1 test C:\Users\admin\Documents\myApp
> jest

FAIL _tests_\Home.test.js
  ● Test suite failed to run

    Configuration error:

    Could not locate module react-datepicker/dist/react-datepicker-cssmodules.css (mapped as identity-obj-proxy)

    Please check:

    "moduleNameMapper": {
      "/^.+\.(css|less)$/": "identity-obj-proxy"
    },
    "resolver": undefined

Test Suites: 1 failed, 1 total
Tests:       0 total
Snapshots:   0 total
Time:        1.894s
Ran all test suites.
npm ERR! Test failed.  See above for more details.

package.json

的笑话部分
  "jest": {
    "transform": {
      "^.+\.jsx?$": "babel-jest"
    },
    "moduleNameMapper": {
      "\.(s?css|less)$": "identity-obj-proxy"
    }
  },

我们通过将 Jest 降级回 20.0.4 来解决这个错误,在更新到 21.0.1 并用这个错误破坏我们的构建后

确保你的 devDependencies 列表中有 identity-obj-proxy npm 包。

确保你的 devDependencies 中有 identity-obj-proxy

"devDependencies": {
  "identity-obj-proxy": "^3.0.0",
  ...
}

如果没有,运行

npm install --save-dev identity-obj-proxy

就我而言,投诉是因为最新版本的 jest 决定强制执行文件扩展名,而我的 package.json 配置丢失 "scss"

"moduleFileExtensions": [
      "js",
      "json",
      "vue",
      "scss"
    ],