Nodemon自动重启和electron-reload热加载

nodemon

  • 监听指定文件,每次编辑完,可以自动重启
  • 可以指定延迟自动重启的时间
  • 非热加载

  • 安装到全局:
    npm install -g nodemon
    
  • package.json添加一下配置:
    "scripts": {
     "start": "nodemon --exec electron .", ///使用nodemon 启动项目
     "dev": "nodemon"///把nodemon添加到依赖
    },
    
  • 创建nodemon.json文件,并添加一下配置:
    {
     "watch": ["*"],    ///监视所有文件 
     "exec": "electron .",             
     "ext": "js,json,html,css",  ///包含js,json,html,css文件      
     "ignore": ["node_modules/","dist/"], ///忽略指定文件夹     
     "delay": "0",///延迟多少毫秒重启
     "restartable": "r"  ///快捷短命令。这里的意思是,在终端输入"r",再回车就自动重启。     
    }
    

electron-reload

  • 安装到全局:
    npm install -g electron-reload
    
  • 设置当前为development环境:
    默认情况下,process.env.NODE_ENV 并不会自动设置为 'development'。你需要明确设置它。
    "scripts": {
     "start": "NODE_ENV=development electron ."
    }
    
  • 在主进程main.js引用electron-reload
    (安装在全局和安装在项目中引用有区别)
    // 判断是否在development环境下
    if (process.env.NODE_ENV === 'development') {
      // 如果electron是全局安装,指定electron可执行文件
      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 可执行文件
        hardResetMethod: 'exit', // 使用 'exit' 方式强制重启
        ignored: /node_modules|[\/\\]\.///忽略文件
     });
    }
    

混合使用

也可以nodemonelectron-reload混合使用,electron-reload只负责当渲染进程改变时,进行热更新nonemon负责剩下其他文件变动时,进行自动重启,不过配置起来稍嫌麻烦,一般也没必要了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容