我有一个仓库repository,想让热更新生效。目前我能够做到以下几点:
因此,我想知道如何在主进程和渲染器进程上使用热模块替换(HMR),并提供一个基本示例,如果足够简单,将避免我相信需要学习额外的工具或面对由于版本或操作系统导致的各种问题。
要求:
- ElectronJS - Vue - 相对快速的端到端测试 - 单元测试 - 主进程和渲染器进程都使用HMR
- 启动应用程序
- 编译应用程序文件并使用编译后的文件运行spectron测试
为什么不使用Vue CLI?
我尝试过Vue CLI和插件vue-cli-electron-builder-builder,但遇到了以下问题:- 它不支持mocha
- 简单的spectron测试需要长达30秒
- 如果我想要定制任何东西,我将不得不学习三个或多个项目(Vue CLI、插件配置、脚手架)
Electron webpack
我最初使用这个插件,并按照视频here的指导进行操作。但是我遇到了一些问题:- 我在3-4个月前尝试使用该插件时,在编译期间遇到了错误,因为它不支持最新的Electron版本(4.0最近发布)
- 当我试图了解如何让Spectron与之一起工作时,我浪费了几个小时才意识到我无法覆盖/使用NODE_ENV变量,这使得设置各种环境(测试、开发、生产)的条件更加困难。
- 第一个问题得到解决后,HMR不再工作
- 尽管我遵循了文档,但某些webpack重写似乎没有生效。例如,我添加了overlay:true,它确实在运行应用程序时显示了叠加层的错误。但是任何试图减少编译噪声的尝试都没有效果。同样,很难确定如何将mocha指向正确的webpack配置(我尝试过指向生成的供应商配置,或在根目录上使用扩展配置,但都失败了)
因此,我想知道如何在主进程和渲染器进程上使用热模块替换(HMR),并提供一个基本示例,如果足够简单,将避免我相信需要学习额外的工具或面对由于版本或操作系统导致的各种问题。
要求:
- ElectronJS - Vue - 相对快速的端到端测试 - 单元测试 - 主进程和渲染器进程都使用HMR