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負責剩下其他文件變動時,進行自動重啟,不過配置起來稍嫌麻煩,一般也沒必要了。