在npm中找不到nodemon


74

我有一个问题:nodemon不能运行npm脚本(例如npm start),
但是如果在npm脚本之外的命令行上调用nodemon ,则nodemon会正常运行。

$ nodemon server.js
14 Feb 22:59:51 - [nodemon] v1.3.7
14 Feb 22:59:51 - [nodemon] to restart at any time, enter `rs`
14 Feb 22:59:51 - [nodemon] watching: *.*
14 Feb 22:59:51 - [nodemon] starting `node server.js`

在npm脚本中如何调用它:

package.json

{
...
  "scripts": {
    "start": "nodemon server.js"
  }
}

运行npm start脚本时:

$ npm start
> aaa@0.0.1 start /home/akul/Documents/aaa
> nodemon server.js

sh: 1: nodemon: not found

npm ERR! Linux 3.13.0-45-generic
npm ERR! argv "node" "/home/akul/npm-global/bin/npm" "start"
npm ERR! node v0.12.0
npm ERR! npm  v2.5.0
npm ERR! code ELIFECYCLE
npm ERR! aaa@0.0.1 start: `nodemon server.js`
npm ERR! Exit status 127
npm ERR! 
npm ERR! Failed at the aaa@0.0.1 start script 'nodemon server.js'.
npm ERR! This is most likely a problem with the aaa package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     nodemon server.js
npm ERR! You can get their info via:
npm ERR!     npm owner ls aaa
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /home/akul/Documents/aaa/npm-debug.log

我一直在寻找解决方案,但没有找到解决方案。

Answers:


111

您可以通过添加以下内容nodemon来解决此问题package.json

npm install nodemon --save-dev

nodemon中不存在时会发生问题/node_modules/.bin

已添加,--save-dev因为仅在开发期间才需要。


4
npm WARN首选将全局nodemon@1.3.7与-g一起安装,但现在成功了,非常感谢nodemon在未使用的全局目录中:D
akul

1
我也遇到同样的问题。现在解决此命令-npm install nodemon --save
Bipon Biswas

7
不要安装带有--save标志的nodemon,因为nodemon仅用于开发。使用-g--save-dev标记
grey87 '18

答案之一可能是这种情况,以防万一有人在使用WSL命令行的Visual Studio Code IDE上遇到问题:stackoverflow.com/a/62639745/8119511
Ank_247shbm

40

尝试检查已安装的全局软件包npm list -g --depth=0。如果你不会找到nodemon, -与标志安装-g--save-dev。不要安装nodemon带有flag的标志--save,因为nodemon它仅用于development


1
npm install -g nodemon
Elrond支持Monica

答案之一可能是这种情况,以防万一有人在使用WSL命令行的Visual Studio Code IDE上遇到问题:stackoverflow.com/a/62639745/8119511
Ank_247shbm

31

在您当前的项目目录下,运行

npm install nodemon --save //save in package.json so that the following code cam find your nodemon

然后在package.json文件中的“脚本”下,添加“ start”:“ nodemon app.js”(或您的入口点是什么),
因此如下所示:

"scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "nodemon app.js"
}

然后运行

npm start

这样可以避免复杂的PATH设置,并且可以在我的Mac上运行,
希望可以为您提供帮助;)


3
不要安装带有--save标志的nodemon,因为nodemon仅用于开发。使用-g或--save-dev
grey87 '18

25

nodemon使用以下命令全局安装。它可以在我的计算机上运行,​​并且我确定它也可以在您的系统上运行。

npm install nodemon -g --save

有时,您应该有权在全局安装它。使用以下命令可以轻松完成。

  1. 在LINUX UBUNTU中: sudo npm install nodemon -g --save

  2. 在Fedora中:

    a)su
    b)npm install nodemon -g --save



5

这是我固定的方法:

当我使用:安装nodemonnpm install nodemon -g --save时,PATH变量中没有我的全局npm软件包路径。

如果仅将其添加到$ PATH变量中,它将得到修复。

编辑~/.bashrc您的主文件夹中的文件,并添加以下行:-

export PATH=$PATH:~/npm

这里的“ npm”是我的全局npm软件包的路径。将其替换为系统中的全局路径



3

heroku默认在生产环境中运行,因此它不会安装dev依赖项。

如果您不想将nodemon重新安装为依赖项,我认为不应该这样做,因为它的正确位置是devDependencies而不是依赖项。

相反,您可以创建两个npm脚本来避免此错误,方法是仅在本地主机中运行nodemon,如下所示:

"scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "node app.js",
    "start:dev": "nodemon --watch"
},

当您想在本地运行项目时,只需在终端中运行npm run start:dev,它将通过nodemon加载app.js。

而在heroku中npm start,默认情况下运行并从普通的node命令加载app.js,您就可以摆脱该错误。


2

这个解决方案对我有用:

我假设您已经全局安装了nodemon。如果完成,请按照以下步骤操作:

打开您的.bash_profile文件:

nano .bash_profile

超过此时间后,即可在您的bash个人资料中添加新的别名:

alias nodemon='~/.npm-global/lib/node_modules/nodemon/bin/nodemon.js'

现在,您可以在任何地方使用nodemon命令。


2
sudo npm install nodemon -g --save

终于这对我有用。我希望这也对其他人有用


1

NPM用于管理软件包并下载它们。但是,必须将NPX用作执行节点包的工具

尝试使用NPX nodemon ...

希望这可以帮助!


1

这对我有用...

将nodemon安装为本地开发依赖项

npm install --save-dev nodemon

将脚本添加到应用程序package.json以启动应用程序。

"scripts": {
  "start": "nodemon app.js"
},

从启动nodemon npm start

$ npm start

> node-rest-demo@1.0.0 start node-rest-demo
> nodemon app.js

[nodemon] 1.19.4 [nodemon] to restart at any time, enter `rs` [nodemon] watching dir(s): *.* [nodemon] watching extensions: js,mjs,json [nodemon] starting `node app.js` Starting server ...

1

安装babel后,我的nodemon消失了(为什么?)。

尝试了很多东西。这是我解决的方法:

sudo npm i -g nodemon

只需使用sudo重新安装即可。是的


1

我遇到了类似的问题,但是随后检查了.npmrc文件,并且密码错误导致连接失败,并且毛线--verbose返回了错误的请求错误。更正密码后,已成功添加软件包。


1

我找到了一个非常简单的解决方案。只需从您的PC中删除npm和npm缓存文件夹。重新安装它,但是我们许多人犯的错误不是全局安装npm。

npm i -g npm

然后,全局安装nodemon:

npm i -g nodemon

现在,即使不使用命令,nodemon仍可全局运行:

npx nodemon <yourfilename>.js

1

npx nodemon(app.js)为我工作,而nodemon(app.js)却没有。

我将node.js更新为最新版本,现在两者都可以正常工作。


这与节点的更新无关。nodemon安装在本地./node_modules/.bin/nodemon。因此,您可以 npx执行npm软件包二进制文件,也可以按照其他多个答案所述在nodemon全局范围内安装(使用-g)。
Mickael B.

感谢您的输入,我已经在全球范围内安装了nodemon,但仍然无法使用。直到更新了node.js才开始起作用。不知道如何,但这就是我解决的方式。
David Gilkeson,

0

我遇到了这个问题,即使在npm install nodemon --save应用程序中使用了命令之后,nodemon仍然有问题。

我使用命令在全局安装了nodemon之后才解决:npm install nodemon -g


0


遇到同样的问题,否则一天前就可以正常工作。非常简单的修复程序首先检查nodemon是否在您的系统上全局存在

去检查

npm list -g --depth=0

如果看不到,则安装它npm install -g nodemon(g代表全局)。
如果看不到它,则需要配置环境变量, 我使用Windows OS。在Windows上,导航至

Control panel>System>Advanced System Settings>Environment Variables>double-click on PATH

现在检查是否具有此PATH。C:\Users\yourUsername\AppData\Roaming\npm
如果没有,则将看到一些现有路径,只需将其追加以分号分隔即可。而已!为我工作。 对我而言,节点安装在C:.. \ Roaming \ npm中,对于您而言,如果PATH不同,则将放置任何适用的内容。


我有些不知道如何丢失我的PATH中的条目。不知道如何,但您的建议已解决。谢谢
贝尔先生

我的荣幸!!享受
pulkit219

0

首先通过以下方式将nodemon安装到您的工作文件夹中

npm install nodemon

将nodemon的路径添加到系统环境的环境变量路径变量中。就我而言,nodemon的路径是。

C:\Users\Dell\Desktop\Internship Project\schema\node_modules\.bin

它为我工作。



0

我想补充一下解决此问题的方式,因为我不得不从几种不同的解决方案中进行一些混合搭配。作为参考,这是针对Windows 10 PC,nodemon已经运行了好几个月,然后突然找不到命令,除非使用npx在本地运行。这是我的步骤-

  1. 通过运行来检查它是否已全局安装npm list -g --depth=0,在我的情况下已经安装了,所以重新开始...
  2. 我跑了 npm uninstall -g nodemon
  3. 接下来,我使用进行了重新安装npm install -g --force nodemon --save-dev(建议先尝试运行npm install -g nodemon --save-dev,再执行其余步骤,如果不起作用,请使用--force再次执行步骤2和3)。
  4. 然后,我使用命令检查了npm文件夹的位置npm config get prefix,在我的情况下,该文件夹位于C:\ Users \ username \ AppData \ Roaming \ npm
  5. 我修改了PATH变量以添加该文件路径和第二个附加\ bin的条目(我不确定实际需要哪个,因为有些人只需要root npm文件夹,而其他人则需要bin,这很容易足以简单地将两者都添加)
  6. 最后,我遵循了Natesh在此条目上建议的类似指示,但是,对于Windows,.bashrc文件不会自动存在,因此您需要在〜目录中创建一个。我还需要略微更改导出的写入方式export PATH=%PATH%;C:\Users\username\AppData\Roaming\npm;(用您的用户名或在步骤4中检索到的文件路径替换“用户名”)

希望这对我一直以来都在努力解决此问题的人有所帮助!


0

--save,-g和更改package.json脚本对我不起作用。这是做什么的:在命令行中运行npm start(或使用npx nodemon)。我使用Visual Studio代码终端。成功完成后,您将看到以下消息:

[nodemon] 1.18.9
[nodemon]要随时重新启动,请输入rs
[nodemon] watching :
[nodemon]开始node app.js

祝你好运!


0

在我的情况下,nodemon需要全局安装:

npm i nodemon -g --save

0

我尝试使用列出全局软件包 npm list -g --depth=0,但找不到nodemon。
因此,尝试使用全局标志安装它。
sudo npm install nodemon -g
这对我来说很好。


0

Windows说明,

打开命令提示符。
类型npm i -g nodemon --save
“ --save”是将该节点包的附加内容保存在项目的package.json文件中



0

对于Linux尝试

sudo npm install -g nodemon

对于Windows打开Powershell或cmd作为管理

npm install -g nodemon

0

对于带有Windows子系统(用于Linux)(即WSL模式)的Visual Studio Code编辑器:

sudo npm install nodemon -g

供nodemon全局使用。


0

在Heroku上部署时遇到了这个问题。问题出在Heroku上,不包括devDependencies本身。要解决此问题,只需在终端中运行命令:

heroku config:设置NPM_CONFIG_PRODUCTION = false

确保在您的devDependencies中包含nodemon

"devDependencies": {
    "nodemon": "^2.0.6"
  }

如果您的错误不在Heroku中

我建议先卸载nodemon,然后再重新安装

https://www.npmjs.com/package/nodemon

或者尝试更改脚本

"scripts": {
    "start": "nodemon fileName.js",
    "start:dev": "nodemon fileName.js"
 }

希望这会有所帮助:)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.