From 81150a8bd785da375f5c87d9b4aefa268c2153aa Mon Sep 17 00:00:00 2001 From: Burkhard Reffeling <burkhard.reffeling@gmail.com> Date: Thu, 26 May 2016 08:04:31 +0100 Subject: [PATCH] package app for osx --- app/package.json | 2 +- app/renderer/assets/html/main.html | 2 +- app/renderer/assets/html/menubar.html | 2 +- build/background.png | Bin 0 -> 27500 bytes build/icon.icns | Bin 0 -> 3808 bytes build/icon.ico | Bin 0 -> 32038 bytes package.js | 131 -------------------------- package.json | 33 +++++-- webpack.config.base.js | 2 +- webpack.config.electron.js | 2 +- webpack.config.production.js | 2 +- 11 files changed, 29 insertions(+), 147 deletions(-) create mode 100644 build/background.png create mode 100644 build/icon.icns create mode 100644 build/icon.ico delete mode 100644 package.js 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 @@ <script> (function() { const script = document.createElement('script'); - script.src = (process.env.HOT) ? 'http://localhost:3000/dist/main.js' : '../../main/main.js'; + script.src = (process.env.HOT) ? 'http://localhost:3000/dist/main/index.js' : '../../main/index.js'; document.write(script.outerHTML); }()); </script> 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 @@ <script> (function() { const script = document.createElement('script'); - script.src = (process.env.HOT) ? 'http://localhost:3000/dist/menubar.js' : '../../menubar/menubar.js'; + script.src = (process.env.HOT) ? 'http://localhost:3000/dist/menubar/index.js' : '../../menubar/index.js'; document.write(script.outerHTML); }()); </script> diff --git a/build/background.png b/build/background.png new file mode 100644 index 0000000000000000000000000000000000000000..c72c3b352eabe7cf8470c0766929f70971550d47 GIT binary patch literal 27500 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 ao)B}?AIX7Qj>llI5N&mRwUTRg;r|Pb-X8)0 literal 0 HcmV?d00001 diff --git a/build/icon.icns b/build/icon.icns new file mode 100644 index 0000000000000000000000000000000000000000..b8e0b06e5fb51058ff35b1224538c360f8ffb21f GIT binary patch literal 3808 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 literal 0 HcmV?d00001 diff --git a/build/icon.ico b/build/icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..3b28564993f84badaa605d9353c967698fef5a82 GIT binary patch literal 32038 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 literal 0 HcmV?d00001 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: {