Javascript ';npm运行测试';有效,但';玩笑——覆盖率';命令不起作用

Javascript ';npm运行测试';有效,但';玩笑——覆盖率';命令不起作用,javascript,reactjs,npm,jestjs,lerna,Javascript,Reactjs,Npm,Jestjs,Lerna,我有一个MonoRepo项目(使用),它由多个包组成,其中一个是React应用程序 在React项目包中,我使用Jest进行单元测试。但是,当我在WebStorm控制台上运行jest--coverage命令时,它返回以下错误: zsh:未找到命令:jest 奇怪的是,如果我使用npm run test,测试将运行,并生成测试覆盖率报告。这是我的包的一部分。json: "scripts": { "test": "jest --coverage", // other stuff }, 如您

我有一个MonoRepo项目(使用),它由多个包组成,其中一个是React应用程序

在React项目包中,我使用Jest进行单元测试。但是,当我在WebStorm控制台上运行
jest--coverage
命令时,它返回以下错误:

zsh:未找到命令:jest

奇怪的是,如果我使用
npm run test
,测试将运行,并生成测试覆盖率报告。这是我的
包的一部分。json

"scripts": {
  "test": "jest --coverage",
  // other stuff
},

如您所见,
npm run test
运行
jest--coverage
,这正是我最初输入的命令。为什么
jest
命令不能独立工作

您需要直接从
节点\u模块运行它,如下所示:

/node\u modules/.bin/jest——覆盖率


有关更多信息,请参见

最简单的解决方案是通过以下方式全局安装jest:

npm i -g jest

我猜,
jest
不是全局安装的。试试
/node\u modules/.bin/jest
;这就是NPM放置可执行文件的地方,它在运行
“脚本”
$npx jest
时添加到路径中的内容是一个更简单的快捷方式,而不是
$./node\u modules/.bin/jest
npx
,可从NPM 5.2.0获得-谢谢@jornsharpe!如果您改为从根目录执行
lerna运行测试
,它是否有效?