代码之家  ›  专栏  ›  技术社区  ›  intercoder

运行带有react的jest测试套件时,无法从'react@16.4.1.js'中找到模块'npm:react@16.4.1/index.js'

  •  1
  • intercoder  · 技术社区  · 8 年前

    我正在尝试从使用 karma , phantomJs jest ,但我无法正确获取配置文件。我一直得到以下错误:

     FAIL  test/unit/components/SomethingWentWrong/SomethingWentWrong.spec.js
      ● Test suite failed to run
    
        Cannot find module 'npm:react@16.4.1/index.js' from 'react@16.4.1.js'
    
        > 1 | module.exports = require("npm:react@16.4.1/index.js");
            |                  ^
    
          at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:221:17)
          at Object.<anonymous> (jspm_packages/npm/react@16.4.1.js:1:18)
    

    这是一个史努比和我的 babel 开玩笑 配置。

    ... rest of code
    
      "devDependencies": {
        "@babel/core": "^7.0.0-beta.56",
        "babel-jest": "^23.4.2",
        "babel-preset-env": "^1.7.0",
        "babel-preset-react": "^6.24.1",
        "jest": "^23.4.2",
        "react-test-renderer": "^16.4.2"
      },
      "jest": {
        "verbose": true,
        "testURL": "http://localhost/",
        "transform": {
          "^.+\\.(jsx|js)?$": "<rootDir>/node_modules/babel-jest"
        },
        "collectCoverageFrom": [ "!**/node_modules/**" ]
      },
      "babel": {
        "presets": [
          [
            "env",
            {
              "loose": true,
              "debug": false,
              "targets": {
                "browsers": [
                  "last 3 versions"
                ]
              }
            }
          ],
          "react"
        ]
      }
    ... rest of code
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   intercoder    7 年前

    实际上我发现了问题所在,因为这个项目处理的依赖项都是 jspm npm 由于某些原因,有些软件包甚至在安装之后也无法安装 npm install my_package jspm install npm:my_package . 快速查看 node_folder 确认软件包未安装,即使它们出现在 package.json

    npm cache verified 和一个新的 jspm install npm: my_package 解决了这个问题

    推荐文章