当前位置: 首页 > news >正文

Nodemon的入门及使用

nodemon 是一个工具,通过在检测到目录中的文件更改时自动重新启动 Node.js 应用程序来帮助开发基于 Node.js 的应用程序。它非常适合在开发环境中使用。以前,我们开发一个 Node 后端服务时,每次更改文件,都需要手动重启服务才能生效,这降低了开发效率。Nodemon 的出现解决了这个问题,它可以随时监听文件的变更并自动重新启动应用程序,而无需对代码或开发方式进行任何更改。

1.安装

  • 全局安装:npm install -g nodemon
  • 开发环境安装:npm install nodemon --save-dev
  • 验证安装成功:nodemon -v

2.配置

  • nodemon 有三种配置方式:命令参数、package.jsonnodemon.json
  • 配置的优先级:nodemon.json > package.json > 命令参数。
  • 配置项包括:
    • watch:监视文件或文件夹的路径。
    • ignore:忽略监视的路径。
    • delay:设置延迟时间。
    • ext:指定默认文件扩展名。
    • script:指定监视的文件(一般是项目入口的 .js 文件)。
    • exec:执行的命令。

3. 配置示例

  • 使用命令行参数配置:

    nodemon --watch src --ext js,json server.js
    
  • 使用

    package.json
    

    配置:

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

    nodemon.json
    

    配置:

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

4.示例

  1. Express.js 项目: 假设你正在开发一个基于 Express.js 的 Web 应用程序。你可以使用 nodemon 来监视你的服务器文件,以便在文件更改时自动重新启动服务器。以下是一个示例配置:

    // nodemon.json
    {"watch": ["src/"],"ext": "js","exec": "node server.js"
    }
    

    在这个示例中,nodemon 会监视 src/ 目录下的所有 .js 文件,并在文件更改时重新启动 server.js

  2. React 前端项目: 如果你正在开发一个基于 React 的前端应用程序,你可以使用 nodemon 来监视你的源代码文件,以便在文件更改时自动重新构建应用程序。以下是一个示例配置:

    // nodemon.json
    {"watch": ["src/"],"ext": "js jsx","exec": "npm run build"
    }
    

    在这个示例中,nodemon 会监视 src/ 目录下的所有 .js.jsx 文件,并在文件更改时运行 npm run build 命令。

  3. Node.js CLI 工具: 如果你正在开发一个自定义的 Node.js 命令行工具,你可以使用 nodemon 来监视你的脚本文件,以便在文件更改时自动重新运行工具。以下是一个示例配置:

    // nodemon.json
    {"watch": ["src/"],"ext": "js","exec": "node my-tool.js"
    }
    
  4. electorn 项目

在你的项目的 package.json 文件中,修改 scripts 部分的 start 命令,以使用 nodemon 启动你的 Electron 应用程序。例如:

  1. "scripts": {"start": "nodemon --exec electron . --watch ./ --ext .js,.html"
    }
    

    这里的配置会监视项目目录下的所有 .js.html 文件,并在文件更改时自动重新启动应用程序。

  2. 运行应用程序: 现在你可以运行以下命令来启动你的 Electron 应用程序,并让 nodemon 监视文件更改:

    npm start
    

    这将启动你的应用程序,并在你修改源代码文件时自动重新启动应用。

http://www.lryc.cn/news/384471.html

相关文章:

  • cesium 实现三维无人机航拍过程实景效果
  • Rust:使用 Warp 框架编写基于 HTTPS 的 RESTful API
  • 测试开发工程师需要掌握什么技能?
  • SpelExpressionParser评估SpEL(Spring Expression Language)表达式的解析器
  • C#学习系列之DataGrid无故添加空行
  • 详解Alibaba Cloud Linux 3.2104 LTS 64位镜像操作系统
  • springboot异常产生原因
  • Redis 7.x 系列【8】数据类型之哈希(Hash)
  • jetson 安装 Rustdesk失败
  • Vue原生写全选反选框
  • typescript学习回顾(三)
  • 算尽天下财,铸就大明梦 —— 大明钱算子夏元吉的传奇一生
  • openCV3.0 C++ 学习笔记补充(自用 代码+注释)---持续更新 二(51-)
  • 读AI新生:破解人机共存密码笔记13有益机器
  • Spring Boot中使用Swagger生成API文档
  • 解决 macOS 中“无法验证开发者”的问题
  • Emp.dll文件丢失?理解Emp.dll重要性与处理常见问题
  • 知识平台管理系统设计
  • Python 中字符串修饰符
  • 红队内网攻防渗透:内网渗透之内网对抗:横向移动篇Kerberos委派安全RBCD资源Operators组成员HTLMRelay结合
  • Manjaro Linux系统简介和archlinux哲学
  • 【Windows 常用工具系列 17 -- windows bat 脚本多参数处理】
  • 《Windows API每日一练》6.3 非客户区鼠标消息
  • Http客户端-Feign 学习笔记
  • 【Linux】进程信号_2
  • 关于五度圈
  • 电脑突然提示dll文件丢失,怎么选择正确的恢复方法?
  • HTML(12)——背景属性
  • C语言 指针——从函数返回字符串
  • java:aocache:基于aspectJ实现的方法缓存工具