【发布时间】:2021-04-21 01:26:26
【问题描述】:
我正在做一个在 Electron 上运行的 Vue 项目。由于 Vue 使用 webpack 开发服务器在开发模式下运行 Vue 应用程序,我需要在编译完成并启动开发服务器后立即使用开发服务器 URL 启动 Electron。就在这之后。
我知道我可以在此之后手动运行 Electron,但我需要自动执行此任务。我这样做的唯一目的是让 Vue devtools 在 Electron 上运行。即使我在 Electron 上设置 writeToDisk: true 并打开 index.html,Vue devtools 也无法工作。它似乎只适用于开发服务器 (Issue seems to be file:// protocol)。我发现服务器启动后可以open a browser。但无法运行任何自定义脚本。
所以我想要的是在我运行 serve Vue 任务并启动开发服务器后自动运行 cross-env NODE_ENV=development electron dist/main.js。 (我也知道这个功能已经在vue-cli-plugin-electron-builder 中实现了,但出于多种原因我避免使用所有这些插件)
【问题讨论】:
-
尝试运行
npm run serve && cross-env NODE_ENV=development electron dist/main.js,如果可行,您可以将其添加到您的 package.json 文件中的 scripts 键中,例如:"scripts" : { "serve-and-electron": "vue- cli-service serve && cross-env NODE_ENV=development electron dist/main.js" } 在你的终端运行npm run serve-and-electron注意:如果你的 serve 命令不包含值“vue-cli-service serve”,替换它具有与服务键中相同的值。 -
@AndresForonda 感谢您的建议,但由于
serve任务在服务器停止之前不会结束。 -
嘿,只用一个 & 代替,试试吧,或者像
npm run serve & cross-env NODE_ENV=development electron dist/main.js这样的东西,我尝试使用 vite 和npm run dev & npm run build并且它有效。 -
这将同时运行,最终导致 Electron 大部分时间都无法加载 URL。 ??????
-
试试
npm run serve & sleep 10 && cross-env NODE_ENV=development electron dist/main.js。这将在启动 Electron 之前等待 10 秒,这应该会给开发服务器足够的时间来启动。
标签: javascript node.js vue.js webpack electron