Skip to content

Commit 17b04e8

Browse files
committed
Ref/ Electron packager in external file
1 parent d77cbf1 commit 17b04e8

File tree

2 files changed

+73
-5
lines changed

2 files changed

+73
-5
lines changed

Diff for: package.js

+64
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
"use strict";
2+
3+
var packager = require('electron-packager');
4+
const pkg = require('./package.json');
5+
const argv = require('minimist')(process.argv.slice(1));
6+
7+
const appName = argv.name || pkg.name;
8+
const buildVersion = pkg.version || '1.0';
9+
const shouldUseAsar = argv.asar || false;
10+
const shouldBuildAll = argv.all || false;
11+
const arch = argv.arch || 'all';
12+
const platform = argv.platform || 'darwin';
13+
14+
const DEFAULT_OPTS = {
15+
dir: './dist',
16+
name: appName,
17+
asar: shouldUseAsar,
18+
buildVersion: buildVersion
19+
};
20+
21+
const icon = 'assets/favicon';
22+
23+
if (icon) {
24+
DEFAULT_OPTS.icon = icon;
25+
}
26+
27+
pack(platform, arch, function done(err, appPath) {
28+
if(err) {
29+
console.log(err);
30+
} else {
31+
console.log('Application packaged successfuly!', appPath);
32+
}
33+
34+
});
35+
36+
function pack(plat, arch, cb) {
37+
// there is no darwin ia32 electron
38+
if (plat === 'darwin' && arch === 'ia32') return;
39+
40+
const iconObj = {
41+
icon: DEFAULT_OPTS.icon + (() => {
42+
43+
let extension = '.png';
44+
if (plat === 'darwin') {
45+
extension = '.icns';
46+
} else if (plat === 'win32') {
47+
extension = '.ico';
48+
}
49+
return extension;
50+
})()
51+
};
52+
53+
const opts = Object.assign({}, DEFAULT_OPTS, {
54+
platform: plat,
55+
arch,
56+
prune: true,
57+
overwrite: true,
58+
all: shouldBuildAll,
59+
out: `app-builds`
60+
});
61+
62+
console.log(opts)
63+
packager(opts, cb);
64+
}

Diff for: package.json

+9-5
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,16 @@
2020
"lint": "ng lint",
2121
"start": "webpack --watch",
2222
"start:web": "webpack-dev-server . --port 4200",
23-
"build": "webpack --display-error-details && copyfiles main.js dist",
23+
"build": "webpack --display-error-details && copyfiles main.js package.json dist",
24+
"dependencies:prod": "cd ./dist && npm install --only=prod && cd ..",
2425
"build:prod": "cross-env NODE_ENV='production' npm run build",
2526
"electron:serve": "electron . --serve",
27+
"electron:test": "electron ./dist",
2628
"electron:dev": "npm run build && electron dist/main.js",
2729
"electron:prod": "npm run build:prod && electron dist/main.js",
28-
"electron:linux": "npm run build:prod && copyfiles package.json dist && electron-packager dist --overwrite --platform=linux --arch=x64 --asar=true --out=app-builds",
29-
"electron:windows": "npm run build:prod && copyfiles package.json dist && electron-packager dist --overwrite --platform=win32 --arch=ia32 --asar=true --out=app-builds",
30-
"electron:mac": "npm run build:prod && copyfiles package.json dist && electron-packager dist --overwrite --platform=darwin --arch=x64 --asar=true --out=app-builds",
30+
"electron:linux": "npm run build:prod && node package.js --asar --platform=linux --arch=x64",
31+
"electron:windows": "npm run build:prod && node package.js --asar --platform=win32 --arch=ia32",
32+
"electron:mac": "npm run build:prod && node package.js --asar --platform=darwin --arch=x64",
3133
"test": "karma start ./karma.conf.js",
3234
"e2e": "protractor ./protractor.conf.js",
3335
"pree2e": "webdriver-manager update --standalone false --gecko false --quiet"
@@ -57,7 +59,7 @@
5759
"cross-env": "^4.0.0",
5860
"css-loader": "~0.26.1",
5961
"cssnano": "~3.10.0",
60-
"electron": "~1.6.5",
62+
"electron": "~1.6.7",
6163
"electron-packager": "~8.6.0",
6264
"electron-reload": "~1.1.0",
6365
"exports-loader": "~0.6.4",
@@ -76,6 +78,8 @@
7678
"karma-jasmine-html-reporter": "~0.2.2",
7779
"karma-sourcemap-loader": "~0.3.7",
7880
"less-loader": "~2.2.3",
81+
"minimist": "^1.2.0",
82+
"mkdirp": "^0.5.1",
7983
"postcss-loader": "~1.3.3",
8084
"postcss-url": "~6.0.4",
8185
"protractor": "~5.1.1",

0 commit comments

Comments
 (0)