【发布时间】:2016-02-26 01:57:57
【问题描述】:
如何使用 Nodemon 从 package.json 文件执行启动脚本?
【问题讨论】:
-
您确定可以从 package.json 执行启动脚本吗?因为据我所知, package.json 是列出所有依赖项,而 nodemon 是保持进程运行。我不太确定你在这里暗示什么?
如何使用 Nodemon 从 package.json 文件执行启动脚本?
【问题讨论】:
这将是一个简单的命令
nodemon --exec npm start
【讨论】:
npm start 但不会为我启动节点服务器.. 它怎么知道 server.js 在哪里?
在 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
【讨论】:
npm start 不会因为缺少 nodemon 而在生产中失败?
npm run start 不是npm start
npm start 是 npm run start 的别名
我有一个名为“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 开关监控它的文件,然后它调用myapp npm 脚本,这是一个简单的组合转换打字稿文件,然后启动生成的server.js。当我更改 TypeScript 文件时,由于 -e 切换会发生相同的循环,并且将生成并执行新的 .js 文件。
【讨论】:
我在我的 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
【讨论】:
使用-exec:
"your-script-name": "nodemon [options] --exec 'npm start -s'"
【讨论】:
nodemon [options] --exec 'npm start -s'。
npm start -s 中的-s 标志。
--loglevel silent 的快捷方式(只是一个例子)。
包内json:
"scripts": {
"start": "node index",
"dev": "nodemon index"
},
"devDependencies": {
"nodemon": "^2.0.2"
}
在终端中进行开发:
npm run dev
以及定期启动服务器:
npm start
【讨论】:
首先更改您的 package.json 文件,
"scripts":
{
"start": "node ./bin/www",
"start-dev": "nodemon ./app.js"
},
之后,执行命令
npm run start-dev
【讨论】:
app.js 时,你正在绕过./bin/www 所做的一切......
在 package.json 文件中。像这样更改文件
"scripts":{
"start": "node ./bin/www",
"start-dev": "nodemon ./app.js"
},
然后执行npm run start-dev
【讨论】:
Nodemon 在每次状态变化时发出事件;启动、重启崩溃等。你可以像这样添加一个Nodemon配置文件(nodemon.json):
{
"events": {
"start": "npm run *your_file*"
}
}
在 Nodemon events — run tasks at server start, restart, crash, exit 了解更多信息。
【讨论】:
将此添加到项目的 package.json 文件中的脚本对象
“开始”:“nodemon index.js”应该是这样的
“脚本”:{ “开始”:“nodemon index.js” }【讨论】:
我只是在终端中使用'npx'来设置nodemon并执行它
npx nodemon
【讨论】:
你也可以全局安装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)。
【讨论】:
这取决于您的 Nodemon 安装类型。如果您使用命令(npm install nodemon --global 或 npm install nodemon -g)全局安装 Nodemon,则不必在 package.json 文件中为 Nodemon 指定任何脚本。只需执行命令nodemon index.js 即可运行您的项目。
但是如果您通过命令npm install nodemon 在本地安装 Nodemon,那么您必须指定脚本。如果您将其命名为start,那么npm run start 或npm start 将触发服务器运行。
// Absolutely no need for global installation
"scripts": {
"start": "nodemon index.js"
}
【讨论】:
如果全局安装则
"scripts": {
"start": "nodemon FileName.js(server.js)",
},
确保您已全局安装nodemon:
npm install -g nodemon
最后,如果您是 Windows 用户,请确保 the security restriction of the Windows PowerShell is enabled。
【讨论】:
{ “名称”:“后端”, “版本”:“0.0.0”, “私人”:真的, “脚本”:{ “开始”:“nodemon ./bin/www” }, “依赖”:{ "bcrypt": "^5.0.1", "cookie-parser": "~1.4.4", “调试”:“~2.6.9”, “快递”:“~4.16.1”, "hbs": "^4.1.2", "http-errors": "~1.6.3", “摩根”:“~1.9.1”, “nodemon”:“^2.0.12” } }
使用“nodemon ./bin/www”脚本 > 开始
“脚本”:{ “开始”:“nodemon ./bin/www” },
【讨论】:
如果您全局安装了nodemon,只需在您的项目中运行nodemon,就会自动从package.json 运行start 脚本。
例如:
"scripts": {
"start": "node src/server.js"
},
nodemon 还将在 package.json 中搜索 scripts.start 属性(从 nodemon 1.1.x 开始)。
【讨论】:
我知道已经晚了 5 年,如果你想使用nodemon.json,你可以试试这个,
{
"verbose": true,
"ignore": ["*.test.js", "fixtures/*"],
"execMap": {
"js": "electron ." // 'js' is for the extension, and 'electron .' is command that I want to execute
}
}
execMap 将像 package.json 中的 script 一样执行,然后您可以运行 nodemon js
【讨论】:
为避免全局安装,请将 Nodemon 添加为依赖项,然后...
package.json
"scripts": {
"start": "node ./bin/www",
"start-dev": "./node_modules/nodemon/bin/nodemon.js ./bin/www"
},
【讨论】: