在我的 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/