Skip to content

Commit 95b957c

Browse files
committed
allow using custom output dir and webpack output changed to dir/bundled
1 parent 57e2bca commit 95b957c

File tree

2 files changed

+27
-24
lines changed

2 files changed

+27
-24
lines changed

generator/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,6 @@ module.exports = api => {
88
devDependencies: {
99
electron: '^2.0.2'
1010
},
11-
main: 'dist/background.js'
11+
main: 'dist_electron/bundled/background.js'
1212
})
1313
}

index.js

Lines changed: 26 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,11 @@ const UglifyJSPlugin = require('uglifyjs-webpack-plugin')
22
const webpack = require('webpack')
33
const Config = require('webpack-chain')
44
module.exports = (api, options) => {
5+
const pluginOptions =
6+
options.pluginOptions && options.pluginOptions.electronBuilder
7+
? options.pluginOptions.electronBuilder
8+
: {}
9+
const outputDir = pluginOptions.outputDir || 'dist_electron'
510
api.registerCommand(
611
'build:electron',
712
{
@@ -14,37 +19,32 @@ module.exports = (api, options) => {
1419
`See https://github.com/nklayman/vue-cli-plugin-electron-builder for more details.`
1520
},
1621
async () => {
17-
const buildRenderer = require('@vue/cli-service/lib/commands/build')
18-
.build
22+
const buildRenderer = require('@vue/cli-service/lib/commands/build').build
1923
const fs = require('fs-extra')
2024
const builder = require('electron-builder')
2125
const rendererConfig = api.resolveChainableWebpackConfig()
2226
const defaultBuildConfig = {
2327
directories: {
24-
output: 'dist_electron'
28+
output: outputDir
2529
},
26-
files: ['dist/**/*', 'node_modules/**/*', 'package.json'],
30+
files: [
31+
outputDir + '/bundled/**/*',
32+
'node_modules/**/*',
33+
'package.json'
34+
],
2735
extends: null
2836
}
29-
const userBuildConfig = (function () {
30-
if (
31-
options.pluginOptions &&
32-
options.pluginOptions.electronBuilder &&
33-
options.pluginOptions.electronBuilder.builderConfig
34-
) {
35-
return options.pluginOptions.electronBuilder.builderConfig
36-
} else {
37-
return {}
38-
}
39-
})()
37+
const userBuildConfig = pluginOptions.userBuildConfig || {}
4038
const mainConfig = new Config()
4139
mainConfig
4240
.mode('production')
4341
.devtool('source-map')
4442
.target('electron-main')
4543
.node.set('__dirname', false)
4644
.set('__filename', false)
47-
mainConfig.output.path(api.resolve('./dist')).filename('background.js')
45+
mainConfig.output
46+
.path(api.resolve(outputDir + '/bundled'))
47+
.filename('background.js')
4848
mainConfig.plugin('uglify').use(UglifyJSPlugin, [
4949
{
5050
parallel: true,
@@ -58,12 +58,17 @@ module.exports = (api, options) => {
5858

5959
console.log('Bundling render process:')
6060
rendererConfig.target('electron-renderer').output.publicPath('./')
61-
await buildRenderer({ _: [] }, api, options, rendererConfig)
61+
await buildRenderer(
62+
{ _: [], dest: outputDir + '/bundled' },
63+
api,
64+
options,
65+
rendererConfig
66+
)
6267
if (fs.existsSync(api.resolve('./dist/fonts'))) {
6368
fs.mkdirSync(api.resolve('./dist/css/fonts'))
6469
fs.copySync(
65-
api.resolve('./dist/fonts'),
66-
api.resolve('./dist/css/fonts')
70+
api.resolve(outputDir + '/bundled/fonts'),
71+
api.resolve(outputDir + '/bundled/css/fonts')
6772
)
6873
}
6974
const bundle = webpack(mainConfig.toConfig())
@@ -131,9 +136,7 @@ module.exports = (api, options) => {
131136
.target('electron-main')
132137
.node.set('__dirname', false)
133138
.set('__filename', false)
134-
mainConfig.output
135-
.path(api.resolve('./dist_electron'))
136-
.filename('background.js')
139+
mainConfig.output.path(api.resolve(outputDir)).filename('background.js')
137140
mainConfig.plugin('uglify').use(UglifyJSPlugin, [
138141
{
139142
parallel: true,
@@ -179,7 +182,7 @@ module.exports = (api, options) => {
179182
api.service.run('serve').then(server => {
180183
console.log('\nLaunching Electron...\n')
181184
const child = execa(
182-
'./node_modules/.bin/electron dist_electron/background.js',
185+
`./node_modules/.bin/electron ${outputDir}/background.js`,
183186
{
184187
cwd: api.resolve('.'),
185188
stdio: 'inherit',

0 commit comments

Comments
 (0)