Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 在本地安装时,npm软件包不可用_Node.js_Npm_Npm Install_Nodemon_Npm Scripts - Fatal编程技术网

Node.js 在本地安装时,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 -

我在一个web应用程序上与npm合作,在使用一些需要同时运行终端命令的软件包时发现了一个问题,例如
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
  • 或者通过
    package.json
    文件中的npm
    脚本执行以下操作:

    {
    “脚本”:{
    “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
的情况下再次安装该软件包,并查看是否可以找到它。