Node.js 在本地安装时,npm软件包不可用
我在一个web应用程序上与npm合作,在使用一些需要同时运行终端命令的软件包时发现了一个问题,例如Node.js 在本地安装时,npm软件包不可用,node.js,npm,npm-install,nodemon,npm-scripts,Node.js,Npm,Npm Install,Nodemon,Npm Scripts,我在一个web应用程序上与npm合作,在使用一些需要同时运行终端命令的软件包时发现了一个问题,例如nodemon和 我是通过 sudo npm install --save-dev nodemon 当我尝试通过以下方式使用它时: nodemon ./server.js 我犯了一个错误 找不到nodemon命令 和我同时使用时一样 我也试过了 sudo npm install --save nodemon 但它不起作用 它只有在全球范围内安装后才能工作 sudo npm install -
nodemon
和
我是通过
sudo npm install --save-dev nodemon
当我尝试通过以下方式使用它时:
nodemon ./server.js
我犯了一个错误
找不到nodemon命令
和我同时使用时一样
我也试过了
sudo npm install --save nodemon
但它不起作用
它只有在全球范围内安装后才能工作
sudo npm install -g nodemon
为什么在本地安装时不能使用它
注意:我可以在node\u modules/.bin
但这一点并不奏效
node_modules/.bin/nodemon ./server.js
全局包可以直接启动,因为默认情况下它们保存在路径中。如果您将包
保存在本地
,您可以在节点_modules/.bin/
上看到它,如您所述。因此,如果要在本地安装可执行程序包,有两种方法可以实现您想要的:
- 您可以通过终端以
/node\u modules/.bin/nodemon yourscript.js
- 或者通过
文件中的npmpackage.json
脚本执行以下操作:
然后执行{ “脚本”:{ “nodemon”:“nodemon yourscript.js” } }
npm run nodemon
在以后的版本中,它附带了一个名为。因此,您可以通过
npx[package]
在终端上运行特定的包,它可以执行本地或全局npm
包。在您的情况下,它应该类似于npx nodemon server.js
这是因为本地node\u modules文件夹不在您的路径中。有关更多详细信息,请参见重复问题的链接 因为它在node_modules/.bin文件夹中,而不是在路径中
您可以使用
/node\u modules/.bin/nodemon
或$(npm-bin)/nodemon
调用nodemon。要运行任何本地安装的npm模块(Mocha、Eslint、nodemon等),您现在可以使用npx
。尝试npx nodemon server.js
我还建议您在package.json中设置
main
,以指向要运行的脚本(默认情况下为index.js),这样您就可以运行npx nodemon
或nodemon
(如果全局安装)它将知道要运行哪个脚本。可能重复的@PeterWilson尝试在节点模块之前添加/
,例如:/node\u模块/.bin/nodemon server.js
您不必在服务器.js
脚本上添加。仍然找不到命令。。主要问题是访问nodemon
命令本身,而不是在我的脚本路径中file@PeterWilson您是否确保在本地安装了nodemon
?尝试npmls--depth=0
并查看是否列出了nodemon
。否则您必须安装它npm install--save dev nodemon
yes它安装正确,我尝试了您的命令,发现it@PeterWilson安装软件包时使用sudo
的具体原因是什么?尝试卸载nodemon
,然后在不安装sudo
的情况下再次安装该软件包,并查看是否可以找到它。