node.js - 即使 prettier 在 devDependancies 中,prettier 命令也不起作用

标签 node.js npm prettier nvm npx

在我的 package.json 中


 "devDependencies": {
   ...
   "prettier": "^2.8.4",
   ...
}

我运行npm i

然后:

$ prettier 
bash: prettier: command not found
$ npx prettier -v

/var/folders/q6/npwl_7xj4wg91lg06f8pnnfh0000gn/T/npx-b98a4fce.sh: line 1: prettier: command not found

不确定这 - /var/folders/q6/npwl_7xj4wg91lg06f8pnnfh0000gn/T/npx-b98a4fce.sh - 是否正常。

我正在使用 nvm,使用 Node v16.17.1 和 npm v8.15.0

有什么想法为什么会发生这种情况或如何调试它吗?

编辑:在我 npm install -g prettier 全局安装 prettier 后,prettier 工作了。但如果没有这个,它不应该工作吗?

最佳答案

安装包含 CLI 程序(如 prettier、nodemon 等)的模块,会将程序放置在 node_modules/.bin 中。当您运行命令时,您的终端 shell 不知道要查找此文件夹。在终端中输入 echo $PATH 可查看运行命令时检查的文件夹列表。您会看到运行 prettier 将在 /bin/usr/bin/usr/local/等位置查找bin 等,但绝对不是 /var/folders/q6/npwl_7xj4wg91lg06f8pnnfh0000gn/T/node_modules

这就是经常使用npx的原因;来自他们的文档:

Executes either from a local node_modules/.bin, or from a central cache, installing any packages needed in order for to run.

您还可以通过 ./node_modules/.bin/prettier 运行它,或者您可以全局安装它,就像您最终所做的那样,这会将其放置在您的 $PATH.

关于node.js - 即使 prettier 在 devDependancies 中,prettier 命令也不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75700595/

相关文章:

node.js 套接字响应顺序和恢复套接字挂断

node.js - 能不能把 "node_modules"目录复制到别的机器上,不用每次都运行 "npm install"?

reactjs - NextJS中的摇晃树包括所有的node_modules包,即使没有全部使用它

ruby - VS Code Prettier 破坏哈希访问

javascript - 我怎样才能防止更漂亮的行为

node.js - Cordova cli 使用代理创建

node.js - MongoDB API 分页

javascript - 平均应用程序登录无法在heroku上运行

javascript - 用于更改屏幕分辨率的 npm Node

formatting - EditorConfig vs. Eslint vs. Prettier : Is it worthwhile to use them all?