我与新公共管理上的Web应用程序的工作,我发现一个问题,使用需要终端命令一些软件包运行诸如此类nodemon
和concurrently
时
我通过安装了它
sudo npm install --save-dev nodemon
当我尝试通过使用它:
nodemon ./server.js
我得到一个错误
nodemon命令未找到
和相同的,当我同时使用
我也试图与
sudo npm install --save nodemon
而这是行不通的。
它只有当我全球的装机它的工作
sudo npm install -g nodemon
为什么当本地安装,我不能用它?
注:我发现在node_modules/.bin
可执行文件
但是这并不以下工作,以及
node_modules/.bin/nodemon ./server.js
全球包可以,因为它们默认保存在你的PATH目录中直接推出。如果保存了包locally
你可以看到它在node_modules/.bin/
如你所说。因此,有2种方式来实现你想要什么,如果你想,如果安装locally
运行可执行程序包:
./node_modules/.bin/nodemon yourscript.js
运行scripts
文件NPM package.json
,你这样做:
{
"scripts": {
"nodemon": "nodemon yourscript.js"
}
}
并执行npm run nodemon
。第2方法也适用于全球或本地安装的两个包。
我更喜欢本地安装的软件包,所以尤其是当我使用每个项目的不同版本的包我的其他应用程序将不会受到影响。
在[email protected]起,它带有一个二进制称为npx。所以,你可以仅仅通过npx [package]
运行在终端上特定的软件包,并执行访问本地或全局npm
包。你的情况应该是这样的npx nodemon server.js
。
因为它在你的node_modules / .bin文件的文件夹,不是你的PATH。
您可以使用./node_modules/.bin/nodemon
或$(npm bin)/nodemon
调用nodemon。
这是因为本地node_modules文件夹不是在路径中。见链接复制问题的更多细节。