,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文件

标签: jestjs

解决方案


以下适用于除此之外的包,jest但我以这个为例。这些过程通常与大多数其他 Node 包类似。

在本地运行

问题是仅为此项目在本地jest安装。有几种方法可以做到这一点:

npx(推荐的)

像这样使用它的最简单方法是使用npx(参见:与 的区别npm),它将执行一个 Node 包。

npx jest --init

npx工具将首先尝试本地安装的软件包,如果找不到,它将下载并一次性运行该软件包,然后将其删除。

将包添加到scriptspackage.json

注意:现在不需要了,因为存在npx. 这是之前npx引入的一种技术。为了获得更完整的列表,将其添加到此处。

基础包

这是手动替代npx- 可以将包添加到scriptspackage.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,但它也可能存在问题。

  1. 它需要您安装一个额外的系统包。您可能没有此权限,或者您不想这样做。

  2. 如果您开始处理一个新项目,您仍然有一个 Node 包的全局安装。如果两个项目使用不同版本的 Node 包并且不兼容,您可能会遇到问题。

  3. 同样,如果您升级项目中的节点包,或者升级全局包,但不能同时升级,那么您可能会遇到类似的不兼容问题。


推荐阅读