返回

Nodemon 简介、安装、使用和配置

发布时间:2022-12-21 04:21:41 6628
# javascript# 前端# java# java# 工具

nodemon

先看下官网的简介:

Nodemon is a utility depended on about 3 million projects, that will monitor for any changes in your source and automatically restart your server. Perfect for development.Swap nodemon instead of node to run your code, and now your process will automatically restart when your code changes.

Nodemon 是一个大约300万个项目都依赖的工具,它可以监视源码中的任意改动并自动重启服务。非常适合开发使用。用 nodemon 代替 node 来运行代码,这样当代码发生改变时,进程会自动重启。

nodemon官网:​​https://nodemon.io/​​

github:​​https://github.com/remy/nodemon/​​


翻译人话

使用 node 启动一个服务,需要:

> node server.js

修改了 server.js 文件,需要停止服务(ctrl + c),再次启动才会生效;

有了 nodemon ,就不用频繁手动重启 server.js ,因为 nodemon 可以监视源码改动,并自动重启服务。这样我们只需要专注写代码逻辑,不需要过多关注服务。


特性(features)

Automatic restarting of application.

自动重启应用程序

Detects default file extension to monitor.

检测要监视的默认文件扩展名

Ignoring specific files or directories.

忽略特定的文件或目录

Watch specific directories.

监视特定目录

Open source and available on github.

开源,上github


安装nodemon

全局安装

> npm install -g nodemon

开发环境安装

> npm install nodemon --save-dev

验证安装成功没有,程序员都是这么严谨 ^_^

> nodemon -v

Nodemon 简介、安装、使用和配置_nodemon

有返回,说明成功了;

需要复习NPM同学:​​NPM 简介、安装、配置、常用方法​​


启动示例

先写一个服务, server.js ,使用 express 框架创建一个get路由。

创建服务:

const express = require('express')
const app = express()
app.get('/server', (request, response) => {
response.setHeader('Access-Control-Allow-Origin', '*')
response.send('Hello Ajax')
})
app.listen('8000', () => {
console.log('Web服务已经启动,端口8000监听中...');
})

启动服务:

使用 nodemon 启动服务。

> nodemon server.js

Nodemon 简介、安装、使用和配置_nodemon_02

服务已经启动;

注意启动后的4条提示信息:

提示1:当前版本 2.0.20;

提示2:可以使用 rs 来手动重启;

Nodemon 简介、安装、使用和配置_nodemon_03

提示3:(watch)默认监视所有文件和目录;

提示4:(ext)默认监视扩展名 “js,mjs,json”;

疑问:既然监视了所有目录和文件,怎么监视扩展名?

回答:监视范围是,先监视所有目录,然后仅关注需要监视的文件类型,还要去掉不需要监视的文件。

预览Web:

访问: http://127.0.0.1:8000/server

Nodemon 简介、安装、使用和配置_nodemon_04

改动代码:

仅是添加三个叹号!

response.send('Hello Ajax!!!')

Nodemon 简介、安装、使用和配置_nodemon_05

nodemon 帮助我们重启了服务  server.js ,省事;

一般到这里就可以快快乐乐的敲代码了,很适合前端的同学使用;

求知欲未满足,那就再学点别的;


配置 nodemon 

配置 nodemon 有三种配置方式:命令参数package.jsonnodemon.json

三种配置的优先级: nodemon.json > package.json > 命令参数;


1)命令行参数形式(全局)

参数:--help,获取帮助;

> nodemon --help

Nodemon 简介、安装、使用和配置_nodemon_06

语法:Usage: nodemon [options] [script.js] [args]

--config :设置指定的配置文件;

--ext : 设置监视文件的后缀扩展名;

--exec :执行脚本

--watch : 设置要监视的文件和文件夹路径;

--ignore :设置无需监视的文件路径;

参数:--watch,监控的文件或文件夹路径;

watch 可以监控多个目录,默认情况下,​nodemon 会 watching path(s): *.*​ 所有项目文件,啥文件改动一下都要重启服务,其实没必要。

可以指定路径,使用  --watch ,如:只监视 src 目录;

> nodemon --watch src server.js

Nodemon 简介、安装、使用和配置_nodemon_07

参数:--ext ,设置监视文件的扩展名;

可以设置多个扩展名,如:监视 “.js 和 .json” ,不加点,逗号隔开;

> nodemon --ext js,json

Nodemon 简介、安装、使用和配置_nodemon_08

上面使用的 --watch 参数,在这次 --ext 中并没有保存下来,监视的目录又变成默认的: "​*.*​",所以说,命令配置临时用一下是可以的,常用的话,还是配置文件香;


两个参数合并写法:

> nodemon --watch src --ext js,json server.js

Nodemon 简介、安装、使用和配置_nodemon_09

等价于配置文件:

{
watch: ['src/'],
ignore: [],
script: 'server.js'
options: {
extensions: ['js', 'json'],
exec: 'node'
}
}

2)package.json 配置

不想用命令行模式,可以在 package.json 中的 nodemonConfig 选项中配置;

"nodemonConfig":{
"watch":["src/"],
"ext":"js json"
}

启动服务:

Nodemon 简介、安装、使用和配置_nodemon_10

3)nodemon.json 配置

单独配置 nodemon.json 文件,需要新建;

{
"watch": [
"src/"
],
"ext": "js json"
}

启动服务:

Nodemon 简介、安装、使用和配置_nodemon_11


拿个完整的 nodemon.json 来总结一下:

{
"restartable": "rs",
"verbose": true,
"watch": [
"config/",
"router/",
"utils/",
"views/",
"app.ts",
"index.ts"
],
"ignore": [
"test/*.spec.ts"
],
"delay": "1000",
"exec": "TS_NODE_PROJECT=tsconfig.server.json node --inspect -r ts-node/register ./app.ts",
"ext": "ts ejs yml json"
}

nodemon.json 各项配置含义:

--restartable:设置重启命令,默认是 rs;

--verbose:是否输出重启的详细信息,布尔值,默认false;

--watch:监视文件或文件夹的路径,数组,每个参数都指某个路径;

--ignore:忽略监视的路径,默认忽略的是:.git,node_modules,bower--components,.sass-cache;

--delay:设置延迟时间;

--ext:指定默认文件扩展名,参数是字符串,空格分隔;

--script:指定监视的文件,一般指项目入口的 js 文件;

--exec:执行的命令;

--env :运行环境 development 是开发环境,production 是生产环境,pr--ot 是端口;

修改 nodemon 命令配置使用 --config 选项;

"start":"nodemon --config nodemon.json"


启动配置

在 package.json 中配置 scripts 对象的 start 属性来指定预定义命令;

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

这样启动服务时,只需输入命令:

> npm start

Nodemon 简介、安装、使用和配置_nodemon_12

也可启动 server 服务,这时 ​npm start​​ 和 ​node server.js​ 效果一样;


特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线
下一篇
回流与重绘 2022-12-21 03:48:39