nodemon
- 監(jiān)聽指定文件噪馏,每次編輯完荒勇,可以自動重啟
- 可以指定延遲自動重啟的時間
- 非熱加載
- 安裝到全局:
npm install -g nodemon
-
package.json
添加一下配置:"scripts": { "start": "nodemon --exec electron .", ///使用nodemon 啟動項目 "dev": "nodemon"http:///把nodemon添加到依賴 },
- 創(chuàng)建
nodemon.json
文件,并添加一下配置:{ "watch": ["*"], ///監(jiān)視所有文件 "exec": "electron .", "ext": "js,json,html,css", ///包含js,json,html,css文件 "ignore": ["node_modules/","dist/"], ///忽略指定文件夾 "delay": "0",///延遲多少毫秒重啟 "restartable": "r" ///快捷短命令。這里的意思是,在終端輸入"r",再回車就自動重啟毛好。 }
electron-reload
- 自動重啟+熱更新:
-
渲染進程
的文件變動,僅刷新頁面苛秕。 -
主進程
的文件變動時肌访,自動重啟整個應(yīng)用。 - 不能指定延遲自動重啟的時間
- ??:只在
開發(fā)環(huán)境
中引用 艇劫,發(fā)布環(huán)境
要取消 - ??????:用
vscode
的運行按鈕
啟動的程序窗口 吼驶,和命令行nom start
啟動的窗口,是兩個獨立的進程。
如果是vscode
的運行按鈕
跑的項目蟹演,通過electron-reload
的hardResetMethod: 'exit'
重啟风钻,會丟失main.js
里所有的狀態(tài) 。- 所以最好用命令行
npm start
跑項目 - 如果一定要用
vscode
的按鈕
跑酒请,要在launch.json
里加上一句:"console": "integratedTerminal"
- 所以最好用命令行
-
- 安裝到全局:
npm install -g electron-reload
- 設(shè)置當前為
development
環(huán)境:
默認情況下骡技,process.env.NODE_ENV 并不會自動設(shè)置為 'development'。你需要明確設(shè)置它羞反。
"scripts": { "start": "NODE_ENV=development electron ." }
- 在主進程
main.js
引用electron-reload
:
(安裝在全局和安裝在項目中引用有區(qū)別)
// 判斷是否在development環(huán)境下 if (process.env.NODE_ENV === 'development') { // 如果electron是全局安裝布朦,指定electron可執(zhí)行文件 const electronPath = require('child_process') .execSync('npm root -g') .toString().trim() + '/electron/cli.js'; // 引用全局安裝的 electron-reload require('/usr/local/lib/node_modules/electron-reload')(path.join(__dirname), { electron: electronPath, // 指定 electron 可執(zhí)行文件 hardResetMethod: 'exit', // 使用 'exit' 方式強制重啟 ignored: /node_modules|[\/\\]\.///忽略文件 }); }
混合使用
也可以nodemon
和electron-reload
混合使用,electron-reload
只負責當渲染進程
改變時苟弛,進行熱更新
喝滞,nonemon
負責剩下其他文件
變動時阁将,進行自動重啟
膏秫,不過配置起來稍嫌麻煩,一般也沒必要了做盅。