美文网首页
nodemon的使用

nodemon的使用

作者: xurna | 来源:发表于2022-09-20 20:15 被阅读0次

目的

开发中监听文件修改,达到重启node等项目服务的作用,减少手动执行:[Ctrl-C] [Up-Arrow] [Enter]。使用nodemon代替node去启动项目服务,nodemon [your node app](相当于 node [your node app]),监听进程。

安装

npm install -g nodemon

使用

命令行模式

nodemon --ignore dist/ --ignore node_modules/ --watch src -C -e js,json,css,scss,vue --debug -x "npm run build"

配置文件模式

nodemon --config nodemon.json -x "npm run build"
// nodemon.json
{
  "restartable": "rs",
  "ignore": [
    "dist",
    "node_modules/**/node_modules",
  ],
  "verbose": true,
  "execMap": {
    "js": "node --harmony" 
  },
  "events": {
    "restart": "osascript -e 'display notification \"App restarted due to:\n'$FILENAME'\" with title \"nodemon\"'"
  },
  "watch": [
    "src",
  ],
  "env": {
    "NODE_ENV": "development"
  },
  "ext": "js,json,css,scss,vue"
}

命令行优先级高于配置文件,命令行模式中的参数设置会覆盖掉配置文件的参数配置。

参数说明

  • restartable:重启的命令,默认是 rs ,可以自定义字符串。当用 nodemon 启动应用后,在监听窗口直接输入rs 可直接重启服务,不需要停止服务在重启。除了字符串值外,设置为 false 则不会在 nodemon 运行期间监听 rs 的重启命令,避免影响了其他终端命令。

  • ignore:忽略的文件后缀名或者文件夹,文件路径的书写用相对于 nodemon.json 所在位置的相对路径。nodemon 默认忽略的文件有:.git, node_modules, bower_components, .sass-cache,如果这些文件想要加入监控,需要重写默认忽略参数字段 ignoreRoot,比如加入:"ignoreRoot": [".git", "bower_components", ".sass-cache"],然后在 watch 中将 node_modules 文件路径加入监控,那么 node_modules 内的文件也加入了监控。

  • verbose:true 表示输出详细启动与重启信息,默认false不输出。

$ nodemon --config 'nodemon.json' -x 'npm run build'
[nodemon] 2.0.19
[nodemon] reading config ./nodemon.json
[nodemon] to restart at any time, enter `rs`
[nodemon] or send SIGHUP to 39624 to restart
[nodemon] ignoring: node_modules/**/node_modules ./dist/**/* 
[nodemon] watching path(s): src/**/*
[nodemon] watching extensions: js,json,css,scss,vue
[nodemon] bind restart -> `osascript -e 'display notification "App restarted due to:
'$FILENAME'" with title "nodemon"'`
[nodemon] starting `npm run build`
[nodemon] spawning
[nodemon] child pid: 39626
[nodemon] watching 409 files
  • execMap:运行服务的后缀名和对应的运行命令,"js": "node --harmony" 表示用 nodemon 代替 node --harmony 运行 js 后缀文件;"": "node" 指 www 这些没有后缀名的文件;默认的 defaults.js 配置文件会识别一些文件:py: 'python',rb: 'ruby'。

  • events:表示 nodemon 运行到某些状态时的一些触发事件,总共有五个状态:

  • start - 子进程(即监控的应用)启动

  • crash - 子进程崩溃,不会触发 exit

  • exit - 子进程完全退出,不是非正常的崩溃

  • restart - 子进程重启

  • config:update - nodemon 的 config 文件改变

状态后面可以带标准输入输出语句,比如 mac 系统下设置: "start": "echo 'app start'",那么启动应用时会输出 app start 信息。除此之外,也可以写js来监控,github 上有介绍: events.mdhttps://github.com/remy/nodemon/blob/master/doc/events.md)。

macos神器osascript可以显示桌面通知,语法如下:

osascript -e ' display notification "通知内容" with title "标题" subtitle "子标题" '
image.png
  • watch:监控的文件夹路径或者文件路径。

  • env:运行环境 development 是开发环境,production 是生产环境,port 是端口号。

  • ext:监控指定后缀名的文件,用逗号间隔。默认监控的后缀文件:.js, .coffee, .litcoffee, .json。

注:关于监控以及忽略文件修改有个顺序的问题,或者说优先级,首先 nodemon 会先读取 watch 里面需要监控的文件或文件路径,再从文件中选择监控 ext 中指定的后缀名,最后去掉从 ignore 中指定的忽略文件或文件路径。

总结

进程管理工具除了nodemon外,还有forever,supervisor,pm2等,他们对比链接,有兴趣可以阅读,开发中nodemon还是比较合适,生产的话用pm2会更好些。

另外,官方也有整理出一些常见问题:https://github.com/remy/nodemon/blob/master/faq.md

相关文章

  • nodejs修改代码自动重启-nodemon模块

    全局安装nodemon npm install -g nodemon 使用 使用就简单了.以前要么是 node a...

  • 使用nodemon令node.js服务自动重启

    1.安装 npm install --global nodemon 2.使用 nodemon xxx.js

  • nodemon的使用

    目的 开发中监听文件修改,达到重启node等项目服务的作用,减少手动执行:[Ctrl-C] [Up-Arrow] ...

  • Express mongodb

    安装express 监听路由和响应内容,使用nodemon自动重启 执行 nodemon file.js 安装 ...

  • nodemon

    nodejs测试环境使用,代码变动,服务重启 nodemon.json 启动服务 - 自动读取nodemon.json

  • node 使用nodemon 频繁启动的问题

    node js 使用nodemon后频繁重启 最后发现启动命令nodemon app 有错误 应该改为nodemo...

  • nodemon使用简介

    简介 nodemon用来监视node.js应用程序中的任何更改并自动重启服务,非常适合用在开发环境中。 nodem...

  • nodemon使用简介

    简介 nodemon用来监视node.js应用程序中的任何更改并自动重启服务,非常适合用在开发环境中。nodemo...

  • node笔记3——express框架

    1. 使用 nodemon 工具来自动重启web服务器 nodemon的作用:能够实时监听当前项目中,文件的变化;...

  • 使用nodemon来做本地开发

    为什么推荐使用nodemon来做本地开发 nodemon用来监视node.js应用程序中的任何更改并自动重启服务,...

网友评论

      本文标题:nodemon的使用

      本文链接:https://www.haomeiwen.com/subject/snhjbrtx.html