nodemon命令在Node.js服务器的终端中未被识别。

176
我正在按照 https://scotch.io/tutorials/authenticate-a-node-js-api-with-json-web-tokens 的指导,配置node.js服务器。由于我对node.js不熟悉,因此我安装了npm install nodemon --save。但是当我运行nodemon server.js时,在终端上显示以下内容:

nodemon is not recognized as internal or external command, operable program or batch file

enter image description here

使用node server.js命令可以启动服务器,但是nodemon命令无法正常工作。

我从https://scotch.io/tutorials/authenticate-a-node-js-api-with-json-web-tokens视频中设置了node.js服务器。

我不知道为什么它不能正常工作,我已经尝试了一些安装nodemon的命令。

npm install -g nodemon 
npm install -g nodemon --save 
npm install --save-dev nodemon 
npm install -g nodemon@debug 

npm install -g --force nodemon

我看到了一个链接I can´t install nodemon globally, "nodemon" not recognized,但是由于我的项目在D盘,我不知道如何设置路径。

我想要运行nodemon server.js。应该怎么做呢?


未来的读者请注意:不要发布文字图像。请将文字作为文本帖子,并使用适当的格式进行编辑。详情请参见这里 - starball
请参阅:https://www.npmjs.com/package/nodemon;'Installation' 部分的最后一段。 - Alex Mandelias
31个回答

397

您需要全局安装它

npm install -g nodemon
# or if using yarn
yarn global add nodemon

然后它将会在路径上可用(我现在看到你已经尝试过这个,但没有成功,你的路径可能出了问题)

如果你想使用本地安装的版本,而不是全局安装,那么你可以在你的package.json中创建一个脚本

"scripts": {
    "serve": "nodemon server.js"
  },

然后使用

npm run serve

如果使用yarn,可选择执行此步骤

# without adding serve in package.json
yarn run nodemon server.js
# with serve script in package.json
yarn run serve

在查找命令时,npm 会先在本地的 node_modules 文件夹中查找,然后再查找全局模块。


什么出了问题?脚本使用本地安装吗? - ndonohoe
package.json: { "scripts": { "serve": "nodemon server.js" }, "name": "node-site", "version": "1.0.0", "description": "", "main": "server.js", "scripts": { "test": "echo "Error: no test specified" && exit 1" }, "author": "", "license": "ISC", "dependencies": { "express": "^4.14.0", "nodemon": "^1.11.0" }, "devDependencies": { "gulp-nodemon": "^2.2.1", "nodemon": "^1.11.0" } } - Varun Sharma
可能是因为你有两组脚本在那里,你必须将所有脚本放在一个脚本对象中。 - ndonohoe
是的,在进行了上述设置之后,它的工作非常顺畅。谢谢! - Akash5288
这对我有用,但是在我的 Windows 机器上运行的 vscode 中,cli 命令是 nodemon.cmd .\yourFIleName.js - Gel
显示剩余3条评论

59
  1. 全局安装 nodemon:

    C:\>npm install -g nodemon
    
  2. 获取前缀:

    C:\>npm config get prefix
    
    您将在控制台中获得以下输出:
    C:\Users\Family\.node_modules_global
    

    复制它。

  3. 设置路径。
    进入高级系统设置 → 环境变量 → 点击新建(在用户变量下)→ 将显示一个弹出窗口 → 输入以下值:

  4. variable name = path,
    variable value = Copy output from your console
    
  5. 现在运行Nodemon:

    C:\>nodemon .
    

这个可行!!这就是我一直在寻找的。谢谢。 - yashjain12yj
1
这个方法对我很有效。事实上,我使用的是Windows并需要修复环境变量。谢谢 :) - Laveena
这也可以工作!!!!!!我正在开发一个ExpressJS项目。我正在使用npm脚本,然后开始在Google上搜索。我在Google上找到了这个链接,我只是在我的笔记本电脑上使用npx nodemon。但我想只使用nodemon <ScriptName.js>,然后我找到了这个。 - Shridhar Sagari

43
无需全局安装 nodemon。只需运行此命令 npx nodemon <scriptname.js> 就可以了。

3
这个解决方案对我有用,但我不明白为什么npm不起作用。 - Ahmed C

31

首先,输入npm install --save nodemon 然后在package.json中写入以下内容

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

然后写

npm run server

这个可行!非常感谢。只是一个问题,nodemon 防止我们重新启动服务器文件,但我们仍然需要刷新浏览器。浏览器能否像 Angular 一样自动刷新? - Rahul Sharma
如果您在执行此操作后仍然遇到错误,可以尝试删除node_modules文件夹并重新运行npm i,然后再次运行应用程序。 - Chris Halcrow

11

我曾遇到同样的问题。我已经将nodemon安装为dev-dependency,当我尝试启动服务器时却收到以下信息:

nodemon不被认为是内部或外部命令、可执行程序或批处理文件。

然后我全局安装了它并尝试启动服务器,它就正常工作了!

npm install -g nodemon

9

使用nodemon,您必须全局安装它。

针对Windows

npm i -g nodemon

针对Mac

sudo npm i -g nodemon

如果您不想全局安装它,可以在项目文件夹中通过运行命令 npm i nodemon 将其本地安装。如果本地运行会出现以下错误:

nodemon: 命令找不到 nodemon cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。

要消除此错误,请打开 package.json 文件并添加内容:

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

然后只需运行以下命令即可:

npm run server

这样就可以正常使用nodemon了。


1
错误。你的脚本应该是 { "server": "nodemon server.js" } - joedotnot
这对于我只想运行一个简单的js文件的情况非常有效。但是nodemon cli命令被自动化为nodemon.cmd .\yourfileName.js - Gel

9

也许有点晚了,但还是说一下吧 :)

如果您不想全局安装nodemon,可以使用npx,它会在运行时安装软件包并像全局软件包一样运作(请记住它只在此时此刻可用,不存在全局!)。

所以你只需要 npx nodemon server.js

  • npx 可以直接在 npm@5.2.0 版本及以上版本中使用。

8

我几分钟前也遇到了同样的错误,以下是我是如何解决它的:

1.全局安装"nodemon"

npm install nodemon -g

2.然后需要将npm路径添加到环境变量中

在终端中执行以下命令以查找路径:

npm config get prefix

你会得到类似于这样的输出:C:\Users\user\AppData\Roaming\npm

如果你不确定如何在Windows上更新环境变量,请查看此链接:Here

3.使用"nodemon"再次运行应用程序 在运行应用程序之前,创建一个新的终端以确保终端识别环境变量的更改。 然后运行: 例如:

nodemon server.js


7

需要全局安装吗?您是否只需要运行nodemon server.js?如果不是,您可以从本地项目目录中调用它。应该在这里:

node_modules/.bin/nodemon

这对我来说很有帮助,可以从shell脚本中运行我的nodejs api。非常感谢! - Nam G VU

7

我是这样修复的

  1. 卸载现有的本地nodemon。

    npm uninstall nodemon

  2. 全局重新安装。

    npm i -g nodemon


1
这个完美运作。在我的环境(Windows Server)中,有4名程序员通过RDP连接到同一台服务器进行编码。感谢Saad。 - Danielle
这对于我想要运行一个简单的 js 文件的情况管用。但是 nodemon 命令行命令可以自动化为 nodemon.cmd .\yourfileName.js - Gel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接