diff --git a/app/package.json b/app/package.json
index e4a7d62..d42215f 100644
--- a/app/package.json
+++ b/app/package.json
@@ -1,5 +1,5 @@
{
- "name": "timesheets",
+ "name": "Timesheets",
"version": "0.0.1",
"description": "A timesheet keeping app based on electron",
"main": "main/index.js",
diff --git a/app/renderer/assets/html/main.html b/app/renderer/assets/html/main.html
index 0b40556..88b7a5c 100644
--- a/app/renderer/assets/html/main.html
+++ b/app/renderer/assets/html/main.html
@@ -19,7 +19,7 @@
diff --git a/app/renderer/assets/html/menubar.html b/app/renderer/assets/html/menubar.html
index 4da642e..98d6809 100644
--- a/app/renderer/assets/html/menubar.html
+++ b/app/renderer/assets/html/menubar.html
@@ -19,7 +19,7 @@
diff --git a/build/background.png b/build/background.png
new file mode 100644
index 0000000..c72c3b3
Binary files /dev/null and b/build/background.png differ
diff --git a/build/icon.icns b/build/icon.icns
new file mode 100644
index 0000000..b8e0b06
Binary files /dev/null and b/build/icon.icns differ
diff --git a/build/icon.ico b/build/icon.ico
new file mode 100644
index 0000000..3b28564
Binary files /dev/null and b/build/icon.ico differ
diff --git a/package.js b/package.js
deleted file mode 100644
index a6e0d62..0000000
--- a/package.js
+++ /dev/null
@@ -1,131 +0,0 @@
-/* eslint strict: 0, no-shadow: 0, no-unused-vars: 0, no-console: 0 */
-'use strict';
-
-require('babel-polyfill');
-const os = require('os');
-const webpack = require('webpack');
-const electronCfg = require('./webpack.config.electron.js');
-const cfg = require('./webpack.config.production.js');
-const packager = require('electron-packager');
-const del = require('del');
-const exec = require('child_process').exec;
-const argv = require('minimist')(process.argv.slice(2));
-const pkg = require('./package.json');
-const deps = Object.keys(pkg.dependencies);
-const devDeps = Object.keys(pkg.devDependencies);
-
-const appName = argv.name || argv.n || pkg.productName;
-const shouldUseAsar = argv.asar || argv.a || false;
-const shouldBuildAll = argv.all || false;
-
-
-const DEFAULT_OPTS = {
- dir: './',
- name: appName,
- asar: shouldUseAsar,
- ignore: [
- '^/test($|/)',
- '^/tools($|/)',
- '^/release($|/)',
- '^/app/main/index.js',
- ].concat(devDeps.map(name => `/node_modules/${name}($|/)`))
- .concat(
- deps.filter(name => !electronCfg.externals.includes(name))
- .map(name => `/node_modules/${name}($|/)`)
- ),
-};
-
-const icon = argv.icon || argv.i || 'app/app';
-
-if (icon) {
- DEFAULT_OPTS.icon = icon;
-}
-
-const version = argv.version || argv.v;
-
-if (version) {
- DEFAULT_OPTS.version = version;
- startPack();
-} else {
- // use the same version as the currently-installed electron-prebuilt
- exec('npm list electron-prebuilt --dev', (err, stdout) => {
- if (err) {
- DEFAULT_OPTS.version = '1.0.2';
- } else {
- DEFAULT_OPTS.version = stdout.split('electron-prebuilt@')[1].replace(/\s/g, '');
- }
-
- startPack();
- });
-}
-
-
-function build(cfg) {
- return new Promise((resolve, reject) => {
- webpack(cfg, (err, stats) => {
- if (err) return reject(err);
- resolve(stats);
- });
- });
-}
-
-function startPack() {
- console.log('start pack...');
- build(electronCfg)
- .then(() => build(cfg))
- .then(() => del('release'))
- .then(paths => {
- if (shouldBuildAll) {
- // build for all platforms
- const archs = ['ia32', 'x64'];
- const platforms = ['linux', 'win32', 'darwin'];
-
- platforms.forEach(plat => {
- archs.forEach(arch => {
- pack(plat, arch, log(plat, arch));
- });
- });
- } else {
- // build for current platform only
- pack(os.platform(), os.arch(), log(os.platform(), os.arch()));
- }
- })
- .catch(err => {
- console.error(err);
- });
-}
-
-function pack(plat, arch, cb) {
- // there is no darwin ia32 electron
- if (plat === 'darwin' && arch === 'ia32') return;
-
- const iconObj = {
- icon: DEFAULT_OPTS.icon + (() => {
- let extension = '.png';
- if (plat === 'darwin') {
- extension = '.icns';
- } else if (plat === 'win32') {
- extension = '.ico';
- }
- return extension;
- })(),
- };
-
- const opts = Object.assign({}, DEFAULT_OPTS, iconObj, {
- platform: plat,
- arch,
- prune: true,
- 'app-version': pkg.version || DEFAULT_OPTS.version,
- out: `release/${plat}-${arch}`,
- });
-
- packager(opts, cb);
-}
-
-
-function log(plat, arch) {
- return (err, filepath) => {
- if (err) return console.error(err);
- console.log(`${plat}-${arch} finished!`);
- };
-}
diff --git a/package.json b/package.json
index 8a45c36..d3e577d 100644
--- a/package.json
+++ b/package.json
@@ -1,26 +1,28 @@
{
- "name": "timesheets",
+ "name": "Timesheets",
"productName": "Timesheets",
- "version": "0.10.0",
+ "version": "0.0.1",
"description": "A timesheet keeping app based on electron",
- "main": "dist/main/main.js",
+ "main": "dist/main/index.js",
"scripts": {
"test": "cross-env NODE_ENV=test mocha --compilers js:babel-register --recursive --require ./test/setup.js test/**/*.spec.js",
"test-watch": "npm test -- --watch",
"test-e2e": "cross-env NODE_ENV=test mocha --compilers js:babel-register --require ./test/setup.js --require co-mocha ./test/e2e.js",
"lint": "eslint app test *.js",
"hot-server": "node -r babel-register server.js",
- "build-main": "cross-env NODE_ENV=production node -r babel-register ./node_modules/webpack/bin/webpack --config webpack.config.electron.js --progress --profile --colors",
+ "build-main": "cross-env NODE_ENV=production node -r babel-register ./node_modules/webpack/bin/webpack --config webpack.config.electron.js --progress --profile --colors && cp app/package.json dist/",
"build-renderer": "cross-env NODE_ENV=production node -r babel-register ./node_modules/webpack/bin/webpack --config webpack.config.production.js --progress --profile --colors && cp -R app/renderer/assets dist/renderer",
"build": "npm run build-main && npm run build-renderer",
"start": "cross-env NODE_ENV=production electron ./",
"start-hot": "cross-env HOT=1 NODE_ENV=development electron -r babel-register -r babel-polyfill ./app/main/index",
"package": "cross-env NODE_ENV=production node -r babel-register package.js",
"package-all": "npm run package -- --all",
- "postinstall": "cd app/ && npm install",
"dev": "concurrently --kill-others \"npm run hot-server\" \"npm run start-hot\"",
"webfont:roboto": "webfont-dl \"https://fonts.googleapis.com/css?family=Roboto:regular,bold,italic,thin,light,bolditalic,black,medium&lang=en\" -o app/renderer/assets/css/fonts/roboto.global.css --woff1=data --svg=omit --ttf=omit --eot=omit",
- "webfont:material-icons": "webfont-dl \"https://fonts.googleapis.com/icon?family=Material+Icons\" -o app/renderer/assets/css/fonts/material-icons.global.css --woff1=data --svg=omit --ttf=omit --eot=omit"
+ "webfont:material-icons": "webfont-dl \"https://fonts.googleapis.com/icon?family=Material+Icons\" -o app/renderer/assets/css/fonts/material-icons.global.css --woff1=data --svg=omit --ttf=omit --eot=omit",
+ "postinstall": "install-app-deps",
+ "pack": "build",
+ "dist": "build"
},
"bin": {
"electron": "./node_modules/.bin/electron"
@@ -61,7 +63,7 @@
"cross-env": "^1.0.7",
"css-loader": "^0.23.1",
"del": "^2.2.0",
- "electron-packager": "^6.0.2",
+ "electron-builder": "^3.25.0",
"electron-prebuilt": "^1.0.2",
"electron-rebuild": "^1.1.3",
"eslint": "^2.9.0",
@@ -80,12 +82,12 @@
"react-addons-test-utils": "^15.0.1",
"selenium-webdriver": "^2.53.1",
"sinon": "^1.17.3",
+ "source-map-support": "^0.4.0",
"style-loader": "^0.13.1",
"webfont-dl": "^0.1.2",
"webpack": "^1.13.0",
"webpack-dev-middleware": "^1.6.1",
- "webpack-hot-middleware": "^2.10.0",
- "source-map-support": "^0.4.0"
+ "webpack-hot-middleware": "^2.10.0"
},
"devEngines": {
"node": "4.x || 5.x || 6.x",
@@ -93,5 +95,16 @@
},
"contributors": [
"Jack Wilkinson (https://github.com/guacjack)"
- ]
+ ],
+ "build": {
+ "app-bundle-id": "hardchor.timesheets",
+ "app-category-type": "public.app-category.productivity",
+ "productName": "Timesheets",
+ "compression": "normal",
+ "asar": true
+ },
+ "directories": {
+ "app": "./dist/",
+ "output": "./release/"
+ }
}
diff --git a/webpack.config.base.js b/webpack.config.base.js
index 07d1e28..7a1409b 100644
--- a/webpack.config.base.js
+++ b/webpack.config.base.js
@@ -13,7 +13,7 @@ export default {
},
output: {
path: path.join(__dirname, 'dist'),
- filename: '[name].js',
+ filename: '[name]/index.js',
libraryTarget: 'commonjs2',
},
resolve: {
diff --git a/webpack.config.electron.js b/webpack.config.electron.js
index f722001..9d719c3 100644
--- a/webpack.config.electron.js
+++ b/webpack.config.electron.js
@@ -14,7 +14,7 @@ export default {
output: {
path: path.resolve(__dirname, 'dist/main'),
- filename: 'main.js',
+ filename: 'index.js',
},
plugins: [
diff --git a/webpack.config.production.js b/webpack.config.production.js
index 505d22b..4eddf36 100644
--- a/webpack.config.production.js
+++ b/webpack.config.production.js
@@ -22,7 +22,7 @@ const config = {
path: path.join(__dirname, 'dist', 'renderer'),
publicPath: '../dist/',
- filename: '[name]/[name].js',
+ filename: '[name]/index.js',
},
module: {