如何使用Nodemon执行启动脚本


90

如何使用Nodemon从package.json文件执行启动脚本?


您确定可以从package.json执行启动脚本吗?因为据我所知,package.json是列出所有依赖关系,而nodemon是保持进程运行。我不太确定您在这里暗示什么?
萨拉斯·阿里亚

Answers:


141

这将是一个简单的命令

nodemon --exec npm start

如果我只需要运行测试而不运行应用程序怎么办?您的解决方案同时运行。
谢尔盖

1
这确实可以运行,npm start但不会为我启动节点服务器。.它将如何知道server.js在哪里?
Sonic Soul,

38

在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


1
抱歉,正在寻找一种使用nodemon执行启动脚本方法,而不是在启动脚本中执行nodemon的方法。很抱歉,如果不清楚。
雪铁龙2015年

6
不会npm start因为缺乏nodemon而使生产失败吗?
ripper234 '16

2
npm run start不是npm start
M. Dhaouadi

1
我是npm的初学者。我不明白为什么可以在使用开箱即用的NodeMon的同时指定启动脚本?我只是将nodemon与npm一起安装,并且无需指定任何脚本即可直接使用它,并且效果很好。
Hokhy Tann

@ M.Dhaouadinpm startnpm run start
乔治(George)

16

我有一个名为“ server.ts”的TypeScript文件,以下npm脚本将Nodemon和npm配置为启动我的应用并监视TypeScript文件上的所有更改:

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

我已经有了Nodemon的依赖项。当我运行时npm start,它将要求Nodemon使用-e开关监视其文件,然后调用myappnpm脚本,该脚本是转换打字稿文件然后启动生成的server.js的简单组合。当我更改TypeScript文件时,由于-e切换,将发生相同的循环,并且将生成并执行新的.js文件。


14

我在Node.js项目中使用Nodemon版本1.88.3。要安装Nodemon,请参见https://www.npmjs.com/package/nodemon

检查您的package.json,查看“脚本”是否已更改,如下所示:

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

server.js是我的文件名,您可以为此文件使用其他名称,例如app.js

之后,在您的终端上运行此命令: npm run dev



5

首先更改您的package.json文件,

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

之后,执行命令

npm run start-dev

1
但是,当您逃跑时,app.js您会绕开所有要做的事情./bin/www……
杰克·威尔逊

1
每次都打开新标签
Qui-Gon Jinn




1

您还可以全局安装nodemon以便经常使用:

npm i nodemon -g 要么 sudo npm i nodemon -g

然后编辑您的package.json:

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

通常,“ dev”指定开发用途(npm run dev)。


1

这将取决于您的Nodemon安装类型。如果使用命令(npm install nodemon --globalnpm install nodemon -g)全局安装Nodemon ,则不必在package.json文件中为Nodemon指定任何脚本。只需执行命令即可nodemon index.js运行您的项目。

但是,如果您通过命令在本地安装Nodemon,npm install nodemon则必须指定脚本。如果你将其命名为开始,然后npm run startnpm start将触发运行服务器。

// Absolutely no need for global installation
 "scripts": {
    "start": "nodemon index.js"
  }

1

如果已nodemon全局安装,则只需nodemon在项目中运行即可自动start从运行脚本package.json

例如:

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

nodemon文档中

nodemon还将在package.json中搜索scripts.start属性(从nodemon 1.1.x开始)。


0

包装内json

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

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

并在终端中进行开发:

npm run dev

并定期启动服务器:

npm start

什么是“ regiuler”?您是说“定期”吗?
Peter Mortensen

-1

为避免全局安装,请将Nodemon添加为依赖项,然后...

package.json

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

如果您将其安装在devDependencies下,仍可以将其设置为“ start-dev”:“ nodemon ./bin/www”
WoLfPwNeR
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.