Easily Build Your Vue.js App For Desktop With Electron
MIT License
I'm happy to announce the first alpha of v3 is here! This release mainly updates all dependencies and cleans up some legacy code. There are no docs yet and this hasn't been tested thoroughly so be careful when using this in production. Please give me feedback and issue reports so I can promote this to stable ASAP.
vue add electron-builder@alpha
main
field from your package.json
background.js
shouldn't require any changes, but you can remove the enableRemoteModule
setting for Spectron if it's theretestWithSpectron
has been renamed to testWithPlaywright
, and doesn't take the Spectron import as an arg. The returned app
is now a Playwright ElectronApplication instead of a Spectron instance, and stopServe
has been renamed to stop
. You don't need to install Playwright, it's a dependency of this plugin.Published by nklayman over 3 years ago
This release has been long overdue and this plugin has been in the RC state for way too long, sorry for the delay. Anyways, better late than never, so here it is! If you were running the latest RC previously, there aren't any breaking changes or required migration steps. Thank you to all my supporters who have funded this project and made this release possible ❤️❤️!!
testWithSpectron
function requires you pass the spectron
module as it's first arg, allowing you to specify the version of spectron to be used. You will need to install spectron as a devDependency
testEnvironment
set to node
, see the examples for more detailsinstallVueDevtools
functionA few major deps were upgraded:
These upgrades may cause breaking changes depending on your specific application.
The internal tests are now run on vue cli v4, and it is recommended that you update your app to vue cli v4 as well.
package.json
without dependencies
field (#828)electron
being listed in dependencies
as well as devDependencies
(#829)(yarn add | npm install) -D vue-cli-plugin-electron-builder@latest
to install the 2.0 version of the plugin.background.(js|ts)
, replace nodeIntegration:true
with:// Use pluginOptions.nodeIntegration, leave this alone
// See nklayman.github.io/vue-cli-plugin-electron-builder/guide/security.html#node-integration for more info
nodeIntegration: process.env.ELECTRON_NODE_INTEGRATION
nodeIntegration
, enable it in vue.config.js
:module.exports = {
pluginOptions: {
electronBuilder: {
nodeIntegration: true
}
}
}
testWithSpectron
function, install the proper version of spectron according to the version map, and pass the spectron import at the first argument of all of your testWithSpectron
calls. See the docs for more details.src/background.js
by default) to use electron-devtools-installer:import {
createProtocol,
- installVueDevtools
} from 'vue-cli-plugin-electron-builder/lib'
+ import installExtension, { VUEJS_DEVTOOLS } from 'electron-devtools-installer'
... (around line 77)
-await installVueDevtools()
+await installExtension(VUEJS_DEVTOOLS)
And then run npm i -D electron-devtools-installer
/yarn add -D electron-devtools-installer
.
After following these steps, your project should be good to go with v2.0!
Published by nklayman over 4 years ago
From now on, whenever you add this plugin to your project, electron-devtools-installer will be used instead of the provided installVueDevtools
function. This function was based off of electron-devtools-installer but with some fixes. These fixes have since been merged into electron-devtools-installer (as well as new features like electron v9 support). It is recommended that you switch to electron-devtools-installer as the installVueDevtools
function will be removed in the 2.0.0
final release. To do so, edit your background.(js|ts)
:
import {
createProtocol,
- installVueDevtools
} from 'vue-cli-plugin-electron-builder/lib'
+ import installExtension, { VUEJS_DEVTOOLS } from 'electron-devtools-installer'
... (around line 77)
-await installVueDevtools()
+await installExtension(VUEJS_DEVTOOLS)
And then run npm i -D electron-devtools-installer
/yarn add -D electron-devtools-installer
.
Published by nklayman over 4 years ago
package.json
without dependencies
field (#828)electron
being listed in dependencies
as well as devDependencies
(#829)Published by nklayman over 4 years ago
This release contains a handful of fixes:
public
folder wouldn't load due to incorrect process.env.BASE_URL
(#803)background.ts
related to process.env.NODE_INTEGRATION
(#801)Published by nklayman over 4 years ago
testWithSpectron
function requires you pass the spectron
module as it's first arg, allowing you to specify the version of spectron to be used. You will need to install spectron as a devDependency
testEnvironment
set to node
, see the examples for more detailsA few major deps were upgraded:
These upgrades may cause breaking changes depending on your specific application.
The internal tests are now run on vue cli v4, and it is recommended that you update your app to vue cli v4 as well.
(yarn add | npm install) -D vue-cli-plugin-electron-builder@latest
to install the 2.0 version of the plugin.background.(js|ts)
, replace nodeIntegration:true
with:// Use pluginOptions.nodeIntegration, leave this alone
// See nklayman.github.io/vue-cli-plugin-electron-builder/guide/security.html#node-integration for more info
nodeIntegration: process.env.ELECTRON_NODE_INTEGRATION
nodeIntegration
, enable it in vue.config.js
:module.exports = {
pluginOptions: {
electronBuilder: {
nodeIntegration: true
}
}
}
testWithSpectron
function, install the proper version of spectron according to the version map, and pass the spectron import at the first argument of all of your testWithSpectron
calls. See the docs for more details.Published by nklayman almost 5 years ago
testWithSpectron
function requires you pass the spectron
module as it's first arg, allowing you to specify the version of spectron to be used. You will need to install spectron as a devDependency
testEnvironment
set to node
, see the examples for more detailsA few major deps were upgraded:
teser-webpack-plugin ^1.1.0 -> ^2.0.0
webpack-chain ^5.0.0 -> ^6.0.0
execa: ^1.0.0 -> ^3.0.0
electron-builder: ^21.2.0 -> 22.2.0
These upgrades may cause breaking changes depending on your specific application.
The internal tests are now run on vue cli v4, and it is recommended that you update your app to vue cli v4 as well.
setTimeout(...).unref is not a function
background.(js|ts)
, replace nodeIntegration:true
with:// Use pluginOptions.nodeIntegration, leave this alone
// See https://github.com/nklayman/vue-cli-plugin-electron-builder/blob/v2/docs/guide/configuration.md#node-integration for more info
nodeIntegration: process.env.ELECTRON_NODE_INTEGRATION
nodeIntegration
, enable it in vue.config.js
:module.exports = {
pluginOptions: {
electronBuilder: {
nodeIntegration: true
}
}
}
testWithSpectron
function, install the proper version of spectron according to the version map, and pass the spectron import at the first argument of all of your testWithSpectron
calls. See the docs for more details.Published by nklayman about 5 years ago
This release adds support for electron 6.0.0. However, there are issues with devtools extensions, so vue devtools are disabled by default if electron v6.0.0 is selected.
Published by nklayman over 5 years ago
Features:
Thanks to @Akryum for the Chokidar PR!
Published by nklayman over 5 years ago
With this release, non external deps will not be included in your built app to reduce it's size.
Features:
Published by nklayman over 5 years ago
With this release, only the modern build is run when building for production (requires @vue/cli-service
v3.4.1). Previously, both the legacy and the modern build had to be run, even though the legacy build is never used. It also includes a few bug fixes (check the commit log for more details).
Published by nklayman over 5 years ago
After closing 163 issues, writing thousands of lines of code across 251 commits, and spending countless hours in front of a computer, 1.0.0 is finally here! We now have 0 open issues (not sure how long that will last 🤔), a pretty good sign of stability 👍. This release includes a few features as well:
Features:
customFileProtocol
configuration option (#183, 3bf42d47c8ca4e195dbd216f4a062d1fc1715934)Thanks to everyone who clicked that ⭐ (we're almost at 500!!!), reported an issue, requested a feature, or made a PR (extra thanks)!
Published by nklayman over 5 years ago
This release include a fix with the latest version of vue-cli (publicPath and baseUrl), as well as some other fixes and features.
Features:
electron:serve
(#185, 0e2b395cc261237135099e77110e501519f609c0)process.env.IS_ELECTRON
is now set accordingly (#181, 346701f3252b04a765d52523eee902469f07839d)Bug Fixes:
electron:build
now works properly with vue-cli 3.3.0 (#177, 28b5be002b1f719f02a4c5f9b4e0cc99c44acd78)electron-builder install-app-deps
is now run on postuninstall
as well as postinstall
(#168, f9f8b470479dc2671ad149a809abce7322d308e2)Published by nklayman almost 6 years ago
With 1.0.0-rc.10, electron ^4.0.0 will be available for use when invoking the generator, and ^3.0.0 will be the default. Internally (for testing), electron v4 is used, along with spectron v5. The background.js
no longer relies on process.env.NODE_ENV
to determine whether to load from the dev server or from the packaged app (#164).
Published by nklayman almost 6 years ago
This release removes use of flatmap-stream
, which contains a major security vulnerability, used in event-stream. Also, make sure you read this message and follow the instructions there!
Published by nklayman almost 6 years ago
app
protocol is used to load index.html
, fixes some CORS issues (#129, 8dc5bbabeca7185abd0ee93864e814ee313804fa)--dashboard
is now removed from electron-builder args, so builds started with the CLI UI will work (https://github.com/nklayman/vue-cli-plugin-electron-builder/issues/48#issuecomment-434621628, d122fe60330832f7c8368fb36d5e34edd1d65df0)Published by nklayman almost 6 years ago
These releases fix #117, where installVueDevtools()
would not return a promise. If you are using electron@^3.0.0
, it is recommended that you upgrade. You do not need to re-invoke the generator.
Published by nklayman about 6 years ago
This release includes a hotfix for #117, where Electron v3 would only display a blank screen. It also removes the need of the <base>
tag in the index.html
. After updating, remove that line, and your app will continue to work as normal.
Published by nklayman about 6 years ago
Yes, I know it is in RC phase, but these needed to happen before the final release.
This release changes the command names!
Before:
yarn (serve|build):electron
After:
yarn electron:(serve|build)
This was changed to make it match other Vue CLI Plugins, see #94 for more info.
You MUST re-invoke the generator if you upgrade to this version. To do so, run vue invoke electron-builder
. This is caused because:
Previously, your app would be packaged relative to the project's root. Since your built code is placed in dist_electron/bundled
, __dirname
in a built app would be [path-to-install]/resources/app.asar/dist_electron/bundled/
. Now, it is packaged relative to dist_electron/bundled
. In a built app, __dirname
would be [path-to-install]/resources/app.asar/
. __static
and process.env.BASE_URL
will still function the same.
--dest
, and changing it no longer requires you to set the main
property of your package.json
(7e4afa689effb6a4fac999a656f54a52ae44beba)VUE_APP_
can now be accessed in the main process (#83, 23ff11be10a725af00e77f474494e397f3f2de4d)userData
path (83229ec573a8a8c8eb4589db51384e9406bcf1f0)Published by nklayman about 6 years ago
12 issues have been closed since the last release 🎉! This means a lot of small features/fixes.
--skipBundle
only runs electron-builder, skipping all bundling (#70, 368a9e4ab66ad20770611aa724ea42d0d1a261a0)--legacy
disables modern mode while bundling the renderer process (#71, 368a9e4ab66ad20770611aa724ea42d0d1a261a0)node_modules
folder path when detecting externals (#75, 4cb68866da88778edf1ab77e86bc1e44dd7e8554)css
folder inside dist_electron/bundled
(#64, e3cb7cb2e757e0fdaff8f64f596c8a883245be20)