jestjs - 找不到命令'jest',您的意思是:来自 deb coreutils 的命令'test' 尝试:sudo apt install
问题描述
Jest 已安装,但当我尝试生成jest.config.js
文件时出现此错误Command 'jest' not found, did you mean:
command 'test' from deb coreutils
Try: sudo apt install <deb name>
所以我执行这个./node_modules/.bin/jest --init
命令来生成jest.config.js
文件
解决方案
以下适用于除此之外的包,jest
但我以这个为例。这些过程通常与大多数其他 Node 包类似。
在本地运行
问题是仅为此项目在本地jest
安装。有几种方法可以做到这一点:
npx
(推荐的)
像这样使用它的最简单方法是使用npx
(参见:与 的区别npm
),它将执行一个 Node 包。
npx jest --init
该npx
工具将首先尝试本地安装的软件包,如果找不到,它将下载并一次性运行该软件包,然后将其删除。
将包添加到scripts
package.json
注意:现在不需要了,因为存在npx
. 这是之前npx
引入的一种技术。为了获得更完整的列表,将其添加到此处。
基础包
这是手动替代npx
- 可以将包添加到scripts
package.json 中的部分,因此它看起来像这样
{
"name": "some name",
"version": "0.0.0",
"description": "",
"author": "yourself",
"scripts": {
/* other scripts */
"jest": "jest"
},
/* dependencies and other properties */
}
有了它,您将能够npm
像使用npx
. 请注意,您必须添加run
才能执行脚本:
npm run jest --init
它仍然会启动该操作的本地jest
安装。
添加一次性流程
作为替代方案,您可以将要运行的命令添加为脚本。然后你可以运行一次并从 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"
直接寻址包
如您所见,您还可以使用
./node_modules/.bin/jest --init
运行jest
。这会起作用,但打字会更长,更烦人。此外,您必须知道包的目录在哪里。
在 Linux 上,./node_modules/.bin/
也可以将目录添加到 PATH
环境变量中。它允许您只执行jest --init
或使用任何其他包,但它也是危险且不需要的。
全局运行(不推荐)
您可以全局安装该软件包。这将允许您独立于当前项目运行它:
npm install --global jest
这仍然允许您使用jest --init
,但它也可能存在问题。
它需要您安装一个额外的系统包。您可能没有此权限,或者您不想这样做。
如果您开始处理一个新项目,您仍然有一个 Node 包的全局安装。如果两个项目使用不同版本的 Node 包并且不兼容,您可能会遇到问题。
同样,如果您升级项目中的节点包,或者升级全局包,但不能同时升级,那么您可能会遇到类似的不兼容问题。
推荐阅读
- java - 如何显示我的数据库的评论部分
- python - 如何在另一个 python 脚本中执行 python discord bot 函数?
- angular - 修复 angular http 升级 ionic
- html - 让 div 中的元素忽略它的容器大小,并使容器可滚动
- angular9 - Syncfusion EJS-网格角
- macos-catalina - Mac 键盘 Option 键模拟
- cron - 每分钟的第n秒运行一次cron?
- sql - Postgres 从另一个表中填充 json 中的 id
- python - 无法读取 UDP 数据包
- matlab - 如何在 matlab 中为每个条目显示超过 15 个有效数字?