如何使用Nodemon执行启动脚本

149
我该如何使用Nodemon执行package.json文件中的启动脚本?

你确定可以从package.json执行启动脚本吗?因为据我所知,package.json是列出所有依赖项的,而nodemon是用来保持进程运行的。我不太确定你在这里暗示什么? - Saras Arya
26个回答

206

这将是一个简单的命令

nodemon --exec npm start

如果我只需要运行测试而不运行应用程序怎么办?你的解决方案同时运行两者。 - Serg
2
这个命令运行了 npm start,但是对我来说并没有启动 Node 服务器。它怎么知道 server.js 的位置呢? - Sonic Soul
1
这是问题的正确答案。用户需要确保他们的NPM脚本实际上执行了他们想要的操作。您可以直接在脚本中使用nodemon,但这不是问题所要求的。这是让nodemon在更改时重新运行脚本的正确方法。 - Jon Church

73

在 package.json 文件中:

{
  "name": "abc",
  "version": "0.0.1",
  "description": "my server",
  "scripts": {
    "start": "nodemon my_file.js"
  },
  "devDependencies": {
    "nodemon": "~1.3.8",
  },
  "dependencies": {

  }
}

然后从终端您可以使用npm start

Nodemon安装:https://www.npmjs.com/package/nodemon


2
抱歉,我正在寻找一种方法来执行启动脚本并使用nodemon,而不是在启动脚本中执行nodemon。如果我的表述不够清晰,也请见谅。 - Citronen
8
在生产环境中,由于缺少 nodemon,npm start 会失败吗? - ripper234
6
“npm run start”不是“npm start”。 - M. Dhaouadi
3
我是一个npm的初学者。我不明白为什么我们需要指定启动脚本,而我们可以直接使用nodemon?我只需使用npm安装nodemon并直接使用它,而无需指定任何脚本,它就可以完美地工作。 - Hokhy Tann
2
@M.Dhaouadi npm startnpm run start 的别名。 - George
直接从终端输入nodemon yourfile.js - mercury

32

我有一个名为"server.ts"的TypeScript文件,以下npm脚本配置了Nodemon和npm启动我的应用程序,并监视TypeScript文件的任何更改:

"start": "nodemon -e ts  --exec \"npm run myapp\"",
"myapp": "tsc -p . && node server.js",

我已经在依赖项中安装了Nodemon。当我运行npm start时,它将使用-e开关要求Nodemon监视它的文件,然后调用myapp npm脚本,它是将Typescript文件转译成server.js并启动生成的服务器的简单组合。当我更改Typescript文件时,由于-e开关,同样的循环会发生,并且新的.js文件将被生成和执行。


21

我在我的Node.js项目中使用的是Nodemon 1.88.3版本。

要安装Nodemon,请参见https://www.npmjs.com/package/nodemon

检查您的package.json文件,查看是否像这样更改了“scripts”:

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

server.js 是我的文件名,你可以使用另一个文件名,比如 app.js

之后,在终端上运行以下命令:npm run dev


15

使用-exec

"your-script-name": "nodemon [options] --exec 'npm start -s'"

除了exec之外,还有其他的方法可以做到这一点吗? - Citronen
如果你想要在命令行中执行此操作,只需输入 nodemon [options] --exec 'npm start -s' 即可。 - nathanhleung
安装它。 - Константин Ван
我对 npm start -s 中的 -s 标志毫无头绪。 - liuliang
@liuliang 是 --loglevel silent 的快捷方式(这只是一个例子)。 - KeatsPeeks

14

json包中:

"scripts": {
  "start": "node index",
  "dev": "nodemon index"
},

"devDependencies": {
  "nodemon": "^2.0.2"
}

在开发终端中:

npm run dev

同时,为了定期启动服务器:

npm start

7

在 package.json 文件中,将文件更改如下

"scripts":{ 
   "start": "node ./bin/www", 
   "start-dev": "nodemon ./app.js"
 },

然后执行 npm run start-dev


7

首先要更改你的package.json文件。

"scripts":
    { 
        "start": "node ./bin/www",
        "start-dev": "nodemon ./app.js"
    },

在此之后,执行该命令。

npm run start-dev

1
但是,当您运行app.js时,您将绕过./bin/www的所有操作... - Jake Wilson
2
每次打开一个新标签页 - Qui-Gon Jinn

5

将以下内容添加到项目的package.json文件中的script对象中:

    "start":"nodemon index.js"

应该像这样:

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


4

我只需要在终端中使用'npx'来安装并运行nodemon

npx nodemon

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