node和nodemon有什么区别?

38

在我的package.json文件中,我正在使用

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

但是如果我使用nodemon替换node app.js,就像这样

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

那么会发生什么?因为当我在服务器端遇到任何错误时,其他API也会停止工作。所以我认为这是因为我使用了node app.js,如果我使用nodemon app.js会不会重新启动服务器。

8个回答

39

当您开发一个Node.js应用程序并进行一些更改时,要看到这些更改生效,您需要重新启动服务器。

使用Nodemon启动您的Node.js应用程序后,它将监视任何更改并自动重启服务器,提高您的生产力。


2
这是另一个问题 :) 你是否使用 g 标志安装了它?npm install -g nodemon 安装期间有任何错误吗? - Simone Poggi
我收到了一个警告,类似于“npm WARN optional dep failed, continuing fsevents@1.0.14”。 - Alex
这是一个关于可选依赖项的警告,所以不会是一个大问题,你尝试在安装后运行 nodemon -v 吗?如果找到该命令,现在就可以运行你的 package.json 脚本了。 - Simone Poggi
当我运行 npm nodemon -v 命令时,会返回版本号。 - Alex
似乎你的nodemon安装不起作用;你可以尝试使用另一种工具https://dev59.com/w2cs5IYBdhLWcg3w0HIa - Simone Poggi
显示剩余2条评论

12

Nodemon是一个实用程序,它会监视您的源代码中的任何更改并自动重新启动服务器,非常适合开发。使用npm安装即可。

npm install -g nodemon

如何使用nodemon?

nodemon "文件名" 忽略引号并将服务器文件的名称放入其中。

Nodemon:

  • 监视您的Node.js应用程序中的任何更改
  • 自动重新启动服务器,
  • 节省时间和繁琐的工作。
  • 这是一种使用 Opn 使开发效率高效的方法:

Opn 是一个打开 Web 浏览器链接、文件和可执行文件的依赖项。我们将使用 Opn 每次服务器重新启动时自动打开本地主机的 Web 浏览器。使用 npm 安装 npm install opn。

如何使用node?

node "文件名" 忽略引号并将文件名 (如 app.js, server.js) 放入其中。

node:

  • 不会自动重启服务器以进行繁琐的工作
  • 不会监视任何更改

6

nodemon是针对你的node应用程序而言的类似于实时服务器。只要在你的node应用程序中进行任何更改,这些更改将会被反映,因为服务器会重新启动。 如此处所述:

nodemon将监视启动nodemon时所在的目录中的文件,如果有任何文件更改,nodemon将自动重新启动您的node应用程序。


我无法使用nodemon,安装并使用后出现错误bash:nodemon:命令未找到。 - Alex

5

nodemon是一款工具,可以通过检测目录中的文件更改来自动重新启动node.js应用程序,从而帮助开发基于node.js的应用程序。

要使用nodemon,请在执行脚本时将命令行上的node替换为nodemon。

在终端窗口中,不需要输入 node app.js 命令,您可以输入 npm start。

在 package.json 文件中,您可以进行以下更改:

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

简而言之,它就像HTML和CSS中的实时服务器一样,但是用于Node.js。

3

当你使用node时,你需要自己重新启动才能看到你所做的更改。但是nodemon会监视特定路径以检测任何更改。如果你在文件中进行了任何更改,nodemon会为你重新启动它。


3

只想补充一下,如果你使用的是 Node v18.11.0+,你不再需要安装 nodemon,因为 Node 添加了 --watch 标志,它会监视文件的变化并自动重新加载,就像 nodemon 一样。

"scripts": {
  "start": "node --watch app.js"
},

2

Nodemon是Node Monitor的缩写。 当你使用node index.js命令运行服务器时,每次修改代码后都需要再次运行node index.js命令并重新加载页面才能看到更改。Nodemon帮助你解决这个问题。它会自动更新服务器。


1
当我们安装Node时,会自动获取Node和npm全局变量。
要使用nodemon,需要先安装它。
npm install -g nodemon

我们也可以使用Node访问文件,但每次更改后都需要停止服务器并重新启动。

node "filename" // provide filename

但是如果我们使用nodemon访问文件,则无需停止服务器并重新启动它,只需要一行命令即可节省重新启动服务器的时间。

nodemon "filename" // provide filename

这一行代码可以帮助您节省大量开发时间,并测试您的示例JavaScript代码。

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