Electron 使用 Nodemon 配置自动重启

在Electron项目中,每次修改了代码都需要手动关闭应用,再执行npm start重启应用。

Nodemon 是一个非常实用的工具,主要用于在开发 Node.js 应用时自动监测文件的变化并重新启动服务器。

安装nodemon

开发环境安装nodemon:

shell 复制代码
npm i nodemon -D

检查是否安装成功:

shell 复制代码
nodemon -v

修改 package.json 命令:

json 复制代码
"scripts": {
 "start": "nodemon --exec electron ."
},

--exec 参数告诉 nodemon 要执行的命令。这里指定了 electron .

修改 main.js 后,应用自动重启。

但是修改.html页面,应用没有自动刷新页面。

配置nodemon

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

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

  1. 在根目录创建 nodemon.json 文件并配置 nodemon.json 规则:
json 复制代码
{
 "ignore": [
 	"node_modules",
 	"dist"
 ],
 "restartable": "r",
 "watch": ["*.*"],
 "ext": "html,js,css"
}
  1. package.json 中配置
json 复制代码
{
  "nodemonConfig": {
    "ignore": [
	 	"node_modules",
	 	"dist"
	 ],
	 "restartable": "r",
	 "watch": ["*.*"],
	 "ext": "html,js,css"
  },
}
  1. 通过命令行配置

使用 --watch 参数可以明确指定要监视的文件或目录:

shell 复制代码
nodemon --watch./src --watch./config main.js

这里指定了监视 ./src./config 目录下的文件变化。

使用 --ignore 参数可以忽略某些文件或目录:

shell 复制代码
nodemon --ignore./node_modules --ignore./dist main.js

这将忽略 ./node_modules./dist 目录下的文件变化。

一般来说,如果想要使用 nodemon 来监视和自动重启 Electron 项目,应该确保命令中的文件参数是正确的项目入口文件 ,通常是 main.js

nodemon配置项

  • watch:监视文件或文件夹的路径。

    • :当这些路径下的文件发生变化时,nodemon 会触发相应的操作(通常是重新启动应用程序)。
    • 例如:"watch": ["*.*"]
  • ignore:忽略监视的路径。

    • 用于排除一些频繁变动但不应该触发应用重新启动的文件或文件夹。
    • 例如:"ignore": [ "node_modules", "dist" ]
  • delay:设置延迟时间(以毫秒为单位)。

    • 当文件发生变化后,nodemon 不会立即重新启动应用程序,而是等待指定的延迟时间后,如果没有更多的文件变化,才会触发重新启动。
    • 例如:"delay": 2000
  • ext:指定默认文件扩展名。

    • 如果不指定这个选项,nodemon 会默认监视 .js 文件。可以用逗号分隔多个扩展名。
    • 例如:"ext": "js,json,html"
  • script:指定监视的文件(一般是项目入口的 .js 文件)。

    • 当这个文件发生变化时,nodemon 会触发重新启动。
    • 例如:"script": "main.js",
  • exec:执行的命令。

    • 当监视的文件发生变化时,nodemon 将执行这个命令来重新启动应用程序。
    • 例如: "start": "nodemon --exec electron ."
  • restartable:配置重启应用的短命令。

    • 例如:"restartable": "r",可以在vs code 终端 输入 r ,回车,重启应用。
相关推荐
H0r1zon.9 小时前
PinCopy:双击 Ctrl,把剪贴板「钉」在屏幕上
前端
kyriewen9 小时前
大厂面试新规:不会用AI编程,直接挂
前端·面试·ai编程
努力找实习的前端小白9 小时前
useImperativeHandle,useRef,forwardRef的协作关系
前端·面试
ZengLiangYi9 小时前
React Query + REST API 最佳实践
javascript·后端·react.js
ZengLiangYi10 小时前
Fastify 加 Electron:把 Web 服务嵌进桌面应用
前端·javascript·后端
qq_25183645710 小时前
基于nodejs express +vue 天天商城系统设计与实现 (源码 文档)
前端·vue.js·express
胡萝卜术10 小时前
从零搭建生成式AI项目:OpenAI + Node.js 环境配置与密钥安全实践
前端·javascript·面试
柒和远方10 小时前
每日一学V012: 从 Python 到 Node.js:一个 AI Native 开发者的 JavaScript 调用 LLM 实战
javascript·node.js·api
lichenyang45310 小时前
鸿蒙实战:聊天记录持久化 · 历史会话页面 · 两个真实 Bug 的定位与修复
前端
STDD10 小时前
Farming Simulator 25(模拟农场 25) Linux 专服搭建完全指南
linux·运维·javascript