Jest TypeError:Path必须是一个字符串。收到undefined

时间:2017-09-14 13:37:46

标签: javascript webpack jestjs babel

我的package.json

的设置

如果我从命令行npm test运行,则所有正确的测试用例都会正确执行。 如果我直接从命令行使用命令jest,我收到此错误:

  

测试套件无法运行

TypeError: Path must be a string. Received undefined

  at assertPath (path.js:7:11)
  at Object.relative (path.js:538:5)

这会发生在任何测试文件上。

知道可能出现什么问题以及如何解决问题?

 "scripts": {
        "test": "standard && jest",
        "format": "standard --fix",
        "start": "webpack-dev-server --config webpack.config.dev.js",
        "build": "webpack --config webpack.config.prod.js"
    },

7 个答案:

答案 0 :(得分:18)

我不完全确定这里的问题是什么,但我遇到了同样的问题,对我有用的是更新Jest版本。我正在使用20但我切换到21,现在它再次神奇地工作。

更新package.json中的版本,然后运行rm -rf node_modules && npm install

答案 1 :(得分:16)

我使用以下方法解决了这个问题:

  • npm uninstall -g jest
  • npm install -g jest
  • npm cache clean
  • npm install

答案 2 :(得分:13)

在我的情况下,我必须将jest更新为版本21.x(来自20.x)。

尝试运行npm install jest@latest --save-dev

答案 3 :(得分:7)

对我来说,这是jest-cli包撞到21.x.所以npm update jest-cli --save-dev

答案 4 :(得分:2)

我使用以下方法解决了此问题:

删除node_modules 删除package-lock.json

从玩笑package.json的{​​{1}}中删除开发人员依存关系

npm remove jest --save-dev.

然后运行命令npm cache clean

然后安装npm install

这对我有用

答案 5 :(得分:1)

对我来说,我不得不降级。 21.x版本对我有用。

答案 6 :(得分:1)

npm install react-dev-utils@10.1.0

有时,接受的答案中的命令不起作用,安装此版本的react-dev-utils会有所帮助。

祝你好运!