Jest已安装,但当我尝试使用./node_modules/.bin/jest --init生成jest.config.js文件时,出现以下错误:
./node_modules/.bin/jest --init
jest.config.js
Command 'jest' not found, did you mean: command 'test' from deb coreutils Try: sudo apt install <deb name>
有什么想法吗?
qxgroojn1#
下面的代码适用于jest以外的软件包,但我用这个作为例子,其他大多数节点软件包的过程通常是类似的。
jest
问题是jest仅为这个项目 * 本地 * 安装。有几种方法可以做到这一点:
npx
像这样使用它的最简单方法是使用npx(请参见:difference with npm),它将执行节点程序包。
npm
npx jest --init
npx工具将首先尝试本地安装的软件包,如果没有找到,它将下载并一次性运行该软件包,然后将其删除。
scripts
**注:**现在有了npx就不需要了。这是npx引入之前的一项技术。在这里添加它是为了有一个更完整的列表。
这是npx的手动替代方法-可以将包添加到package.json中的scripts部分,如下所示
{ "name": "some name", "version": "0.0.0", "description": "", "author": "yourself", "scripts": { /* other scripts */ "jest": "jest" }, /* dependencies and other properties */ }
这样你就可以像使用npx一样使用npm了。注意你必须添加run来执行这个脚本:
run
npm run jest --init
它仍然为该操作启动本地X1 M14 N1 X安装。
作为一种替代方法,您可以将要运行的命令添加为脚本,然后运行一次并从package.json中删除。
{ "name": "some name", "version": "0.0.0", "description": "", "author": "yourself", "scripts": { /* other scripts */ "oneoff": "jest --init" }, /* dependencies and other properties */ }
然后你就可以执行
npm run oneoff
最后,您可以删除"oneoff": "jest --init"
"oneoff": "jest --init"
正如您所发现的,您还可以使用
运行jest。这将工作,但它更长,更烦人的类型。此外,你必须知道包的目录在哪里。在Linux上,./node_modules/.bin/目录也可以添加到PATH环境变量中,它允许你只执行jest --init或使用任何其他的包,但是它也是危险的和不必要的。
./node_modules/.bin/
PATH
jest --init
您可以全局安装包。这将允许您独立于当前项目运行它:
npm install --global jest
这仍然允许您使用jest --init,但是这也可能会有问题。1.它需要您安装额外的系统包。可能您没有权限执行此操作,或者您不想执行此操作。1.如果您开始处理新项目,您仍然有一个节点包的全局安装。如果两个项目使用不同版本的节点包并且这些版本不兼容,您可能会遇到问题。1.类似地,如果您升级了项目 * 中的节点包 *,或者升级了 * 全局包 *,但没有同时升级,那么您可能会遇到类似的不兼容问题。
1条答案
按热度按时间qxgroojn1#
下面的代码适用于
jest
以外的软件包,但我用这个作为例子,其他大多数节点软件包的过程通常是类似的。本地运行
问题是
jest
仅为这个项目 * 本地 * 安装。有几种方法可以做到这一点:npx
(推荐)像这样使用它的最简单方法是使用
npx
(请参见:difference withnpm
),它将执行节点程序包。npx
工具将首先尝试本地安装的软件包,如果没有找到,它将下载并一次性运行该软件包,然后将其删除。将软件包添加到package.json中的
scripts
**注:**现在有了
npx
就不需要了。这是npx
引入之前的一项技术。在这里添加它是为了有一个更完整的列表。基础 Package
这是
npx
的手动替代方法-可以将包添加到package.json中的scripts
部分,如下所示这样你就可以像使用
npx
一样使用npm
了。注意你必须添加run
来执行这个脚本:它仍然为该操作启动本地X1 M14 N1 X安装。
添加一次性流程
作为一种替代方法,您可以将要运行的命令添加为脚本,然后运行一次并从package.json中删除。
然后你就可以执行
最后,您可以删除
"oneoff": "jest --init"
直接寻址软件包
正如您所发现的,您还可以使用
运行
jest
。这将工作,但它更长,更烦人的类型。此外,你必须知道包的目录在哪里。在Linux上,
./node_modules/.bin/
目录也可以添加到PATH
环境变量中,它允许你只执行jest --init
或使用任何其他的包,但是它也是危险的和不必要的。全局运行(不推荐)
您可以全局安装包。这将允许您独立于当前项目运行它:
这仍然允许您使用
jest --init
,但是这也可能会有问题。1.它需要您安装额外的系统包。可能您没有权限执行此操作,或者您不想执行此操作。
1.如果您开始处理新项目,您仍然有一个节点包的全局安装。如果两个项目使用不同版本的节点包并且这些版本不兼容,您可能会遇到问题。
1.类似地,如果您升级了项目 * 中的节点包 *,或者升级了 * 全局包 *,但没有同时升级,那么您可能会遇到类似的不兼容问题。