终端js服务器的终端中无法识别nodemon命令


85

我正在从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识别为内部或外部命令,可操作程序或批处理文件

在此处输入图片说明

node server.js命令正在运行并启动了服务器,但是nodemon命令不起作用。

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

我不知道为什么它不起作用,我已经尝试了一些命令来安装节点。

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

npm install -g --force nodemon

我已经看到一个无法全局安装nodemon的链接,无法识别“ nodemon”,但是由于我在D盘中的项目位置,我不知道如何设置路径。

我要跑步nodemon server.js。如果有人有想法,请分享。提前致谢。

Answers:


206

您需要全局安装

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

然后它将在路径上可用(我现在看到您已经尝试过此方法,但是它不起作用,您的路径可能被弄乱了)

如果要使用本地安装的版本,而不是全局安装,则可以在package.json中创建脚本

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

然后使用

npm run serve

如果使用纱线则可选

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

然后,npm将在本地模块中查找命令之前先在本地node_modules文件夹中查找


什么不起作用?该脚本使用本地安装吗?
ndonohoe '16

耶 我已经安装了nodemon。我把脚本放在package.json文件中。然后在运行npm后运行服务。毕竟,然后运行nodemon server.js,但不起作用。
马丁

package.json:{“ scripts”:{“ serve”:“ nodemon server.js”},“ name”:“ node-site”,“ version”:“ 1.0.0”,“ description”:“”,“ main“:” server.js“,” scripts“:{” test“:” echo \“错误:未指定测试\” &&出口1“},” author“:”“,” license“:” ISC“, “ dependencies”:{“ express”:“ ^ 4.14.0”,“ nodemon”:“ ^ 1.11.0”},“ devDependencies”:{“ gulp-nodemon”:“ ^ 2.2.1”,“ nodemon”: “ ^ 1.11.0”}}
马丁

你能澄清“不起作用”吗?有错误吗?没事吗
ndonohoe '16

可能是因为其中有两组脚本,所以必须将所有脚本都放在一个脚本对象中
ndonohoe

31
  1. 全局安装nodemon:

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

    C:\>npm config get prefix
    

    您将在控制台中获得如下输出:

    C:\Users\Family\.node_modules_global
    

    复制它。

  3. 设置路径。
    转到高级系统设置→环境变量→单击新建(在用户变量下)→将显示弹出菜单→传递以下值:

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

    C:\>nodemon .
    

这有效!!这是我一直在寻找的。谢谢
yashjain12yj

这对我有用。其实我有Windows,需要修复环境变量。谢谢:)
Laveena

21

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

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

然后写

npm run server

这工作了!非常感谢。只是查询,nodemon阻止了我们重新启动服务器文件,但是我们仍然必须刷新浏览器。浏览器是否可以像在angular中那样自行刷新?
拉胡尔·夏尔马

8

我面临着同样的问题。我已经将nodemon安装为开发依赖项,当我尝试启动服务器时,它给出了以下信息:

无法将nodemon识别为内部或外部命令,可操作程序或批处理文件

然后,我在全局安装了它并尝试启动服务器,它开始工作了!

npm install -g nodemon

6

是否需要全局安装?您是否需要能够跑步nodemon server.js?如果没有,您总是可以从本地项目目录中调用它。应该在这里:

node_modules/.bin/nodemon

这对我从shell脚本运行nodejs api很有帮助。十分感谢!
Nam G VU

4

由于节点前缀不在PATH ENV变量中,因此不会识别任何全局安装的模块。请尝试这个。打开cmd提示符npm config get前缀,将结果路径附加到PATH env变量。现在,您应该可以从任何位置运行nodemon了。尝试此链接,并按照it.fixing NPM权限 https://docs.npmjs.com/getting-started/fixing-npm-permissions#option-2-change-npms-default-directory-to-another-directory


在您的链接中有针对Linux的说明,您是否有适用于Windows的内容?
Jose Rojas

4

这行解决了我在CMD中的问题:

npm install --save-dev nodemon

3
全局nodemon安装对我不起作用,但是这一步对我
有用

4

这可能到了很晚,但最好说些什么:)

如果您不想安装nodemon globbaly npx,则可以使用,它会在运行时安装该软件包,并且会像全局软件包一样工作(请注意,它目前仅在全球范围内不可用!)。

因此,您所需要做的就是npx nodemon server.js

  • npx可以从npm@5.2.0版本开始使用。

3

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

对于Windows

npm i -g nodemon

对于Mac

须藤npm i -g nodemon

如果您不想全局安装它,可以通过运行command在项目文件夹中本地安装它 npm i nodemon 。如果在本地运行,它将给出类似以下的错误:

nodemon:术语“ nodemon”不被识别为
cmdlet,函数,脚本文件或可操作程序。检查拼写
的名称,或者如果包含路径,请验证路径是否为
更正并重试。

要删除此错误打开 package.json 文件并添加

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

然后运行命令

npm运行服务器

您的nodemon将开始正常工作。


1
错误。您的脚本应该说{“ server”:“ nodemon server.js”}
joedotnot19年

1

在我的开发机器上创建新的用户配置文件后,遇到了同样的问题。

问题是我没有以管理员身份运行控制台(命令提示符\ powershell ISE)。

以管理员身份运行为我解决了这个问题。


1

我尝试在全球范围内安装nodemon,但这对我不起作用。每当我尝试运行它总是向我显示错误:

nodemon : The term 'nodemon' is not recognized as the name of a
cmdlet, function, script file, or operable program. Check the spelling
of the name, or if a path was included, verify that the path is
correct and try again.

2.我找到了两个解决方案

解决方案1:

我尝试过的是更新package.json文件中的“脚本”,并且在其中添加了

"server": "nodemon app.js"

在上面的代码行之后

npm run server

解决方案2:

  1. 按Windows键。

  2. 在搜索框中键入“路径”,然后选择“编辑系统环境变量”

  3. 单击底部附近的“环境变量”。

  4. 在“系统变量”部分中,双击“路径”变量。

  5. 点击右侧的“新建”。

  6. 将其复制并粘贴到框中(替换[用户名]):

C:\ Users [用户名] \ AppData \ Roaming \ npm

  1. 重新启动您的终端和VSCode。

  2. 然后键入nodemon app.js以运行nodemon

我应用了解决方案2,因为我们只需要运行nodemon [filename.js]


1

无需全局安装nodemon。只需运行此npx nodemon <scriptname.js>即可。而已。


0

您只需输入以下内容即可运行您的节点应用程序。nodemon 首先运行index.js。您可以轻松地将入口点放入该文件中。

如果尚未安装nodemon,则首先必须通过以下方式安装它

npm install -g nodemon

如果您遇到任何权限错误,请使用

sudo npm install -g nodemon

您可以通过以下方式检查nodemon是否存在

nodemon -v

0

运行以下命令:

npm install nodemon -g

现在它将安装nodemon,但是我的问题是它正在其他地方安装nodemon。我从(ProgramFiles(x86))添加了Nodejs路径,但是没有用,所以我找到了另一个解决方案。

  • 运行以上命令
  • 在安装过程中将显示一个安装了nodemon的路径,然后[请转到下面的链接查看路径] [1]

    [1]:https//i.stack.imgur.com/ld2sU.png

  • 将路径复制到npm并将其设置为环境变量
  • 现在尝试下面的命令,希望它将运行

      nodemon YourAppName.js

0

以上所有选项均失败,为此我获得了永久解决方案。在package.json中的依赖项和下方添加以下行run npm install。这会将nodemon包添加到node_modules中,然后您就可以开始享受编码了。

"nodemon": "^1.17.*"

3
欢迎使用堆栈溢出。用现有答案回答较旧的问题时,解释您的答案带来了哪些新信息很有用。该答案似乎并未显示出全局安装,它引用了特定版本(因此不会老化),并且未回答所提出的问题,因为它没有显示如何启用命令。
杰森·艾勒

0

只需全局安装

 npm install -g  nodemon

它在Windows 10上对我有用。

nodemon app.js

0

对于Windows,Set-ExecutionPolicy cmdlet的默认执行策略为“受限”。您可以通过将此策略设置为Unrestricted来尝试安装nodemon。

执行命令:Set-ExecutionPolicy Unrestricted 然后尝试安装nodemon并执行命令:nodemon -v



-2

删除nodemon,因为它是开发人员依赖项,请使用node代替它。

"scripts": {
     "start": "node server.js"
 },

这对我有用。


不回答问题。node和nodemon具有不同的用途。
joedotnot

它是不同的东西。对于nodemon,它应该是“ server”:“ nodemon app.js”
Shubham Kumar
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.