{"push_id":2716793241,"size":3,"distinct_size":2,"ref":"refs/heads/electron-builder","head":"e84d20f2d1b4d570d3088a5c182c476321d8fdc0","before":"3b04d6cfe7288e9dd00175dde3660b23b2822187","commits":[{"sha":"8519f315f0a2206aef859b130bcaaef5ddef3152","author":{"name":"Tao Wang","email":"7e7be65ebb8f801a58c89ee3c1a6a687290e952e@gmail.com"},"message":"Migrate to webpack 4\n\nGrunt => Webpack\n=========================\n\n* Extract webpack configuration to separated file.\n    * `webpackConfig` => `webpack.config.app.js`: Webpack configuration for App content;\n    * `webpack.config.main.js`: Webpack configuration for Electron main process;\n        * Copy all files under `desktop/` to `dist/app/` except `package-lock.json;\n        * Replace the `@@PUBLIC_KEY_CONTENT` with `app/resources/public-key.pem`'s content;\n* Replace `replaceFont()` function with webpack `url-loader`;\n* Rearrange `dist`, `tmp` directories to single `dist` directory:\n    * `tmp`, `tmp/desktop/app`, `tmp/cordova` => `dist/app`: App content;\n    * `dist`, `tmp/desktop` => `dist/build`: Build directory for each platform;\n    * `dist/desktop/` => `dist/release`: Release files for each platform;\n* `grunt --beta` => `webpack --env.release=beta`;\n* Targets:\n    * Web: `webpack --env.target=web`\n    * Desktop: `webpack --env.target=desktop`\n    * Cordova: `webpack --env.target=cordova`\n* Release Channels:\n    * Stable: `webpack --env.release=stable`\n    * Beta: `webpack --env.release=beta`\n* Production vs Development:\n    * Production: `NODE_ENV=production`\n    * Development: `NODE_ENV=development`\n* Grunt Tasks:\n    * `gitinfo`: `git-revision-webpack-plugin`;\n    * `clean`: NPM script with `rimraf` package;\n    * `copy`:\n        * `copy:html`:\n            * `app/index.html` => `app/index.hbs` template;\n            * `html-webpack-plugin`;\n        * `copy:favicon` => `html-webpack-plugin`;\n        * `copy:icons` => `copy-webpack-plugin`;\n        * `copy:dist-icons` => `copy-webpack-plugin`;\n        * `copy:manifest` => `copy-webpack-plugin`;\n        * `copy:dist-manifest` => `copy-webpack-plugin`;\n        * `copy:fonts` => webpack's `url-loader`;\n        * `copy:desktop-app-content` => `webpack.config.main.js`'s `copy-webpack-plugin`;\n    * `eslint` => webpack `eslint-loader`;\n    * `sass` => webpack `sass-loader`;\n    * `postcss` => webpack plugins:\n        * `resolve-url-loader`\n        * `css-loader`\n        * `optimize-css-assets-webpack-plugin`\n        * `style-loader` (fallback)\n    * `inline` => webpack plugins:\n        * `script-ext-html-webpack-plugin`\n        * `html-webpack-inline-source-plugin`\n        * `ignore-assets-webpack-plugin`\n        * `extract-text-webpack-plugin`\n    * `htmlmin` => `html-webpack-plugin`'s `minify`;\n    * `string-replace`:\n        * `manifest` => `copy-webpack-plugin`\n        * `manifest-html` => `app/index.hbs` template\n        * `desktop-html` => `app/index.hbs` template\n        * `desktop-public-key` => webpack `url-loader`\n        * `cordova-html` => `app/index.hbs` template\n    * `uglify` => `uglifyjs-webpack-plugin`;\n    * `watch` => `webpack-dev-server`\n    * `concurrent` => No need for separate watcher because all HTML/JS/CSS are built by `webpack`, so only `webpack-dev-server` is enough;\n\nFile modifications\n==================\n\n* `app/styles/main.scss`: webpack can resolve the name with `~` prefix, so `../node_modules/` => `~`;\n* `desktop/main.js`: Use tempalte quote for \"`@@PUBLIC_KEY_CONTENT`\" to avoid replace the quote later for multiline string.\n\nDependencies\n=============\n\n* `webpack` upgrade to `^4.12.0`;\n* `webpack-dev-server` upgrade to `^3.1.4`;\n* `babel-loader` upgrade to `7.1.4` for webpack 4 support;\n* `babel-preset-es2015` => `babel-preset-env`;\n* `handlebars-loader` upgrade to `1.7.0`;\n\nNPM scripts\n==============\n\n* Build app content for Web:\n    * `webpack:web`: Production\n    * `webpack:web:beta`: Beta\n    * `webpack:web:dev`: Development\n* Build app content for desktop target:\n    * `webpack:desktop`: Production\n    * `webpack:desktop:beta`: Beta\n    * `webpack:desktop:dev`: Development\n    * Internals:\n        * `webpack:desktop:app`: App content for desktop\n        * `webpack:desktop:main`: Electron main process\n        * `webpack:desktop:build`: Build both app content and main process for desktop (without specify whether it's production or development)\n* Build app content for cordova\n    * `webpack:cordova`\n* Webpack dev server\n    * `server`: Development\n    * `server:prod`: Production\n* Electron\n    * `electron`: Run electron with `dist/app`;\n    * `electron:server`: Run electron with `dist/app` and argument `--htmlpath=http://localhost:8085/`;\n* ESLint\n    * `eslint`: Run ESLint\n* Bundle Analyzer: Use Bundler Analyzer to visualize bundler size stats;\n    * `webpack:web:stats`: bundler analysis on Web target;\n    * `webpack:desktop:stats`: bundler analysis on Desktop target;\n* Clean the build\n    * `clean`: Remove `dist` directory\n    * `clean:app`: Remove `dist/app` directory\n    * `clean:build`: Remove `dist/build` directory\n    * `clean:release`: Remove `dist/release` directory\n\nSigned-off-by: Tao Wang <twang2218@gmail.com>","distinct":false,"url":"https://api.github.com/repos/twang2218/keeweb/commits/8519f315f0a2206aef859b130bcaaef5ddef3152"},{"sha":"7a9a41bc6e641b5390b93a9be4f95299bd9b9536","author":{"name":"Tao Wang","email":"7e7be65ebb8f801a58c89ee3c1a6a687290e952e@gmail.com"},"message":"Migrate to webpack 4\n\nGrunt => Webpack\n=========================\n\n* Extract webpack configuration to separated file.\n    * `webpackConfig` => `webpack.config.app.js`: Webpack configuration for App content;\n    * `webpack.config.main.js`: Webpack configuration for Electron main process;\n        * Compile the `desktop/{main,app}.js` to a single file with `node_modules` module;\n* Replace `replaceFont()` function with webpack `url-loader`;\n* Rearrange `dist`, `tmp` directories to single `dist` directory:\n    * `tmp`, `tmp/desktop/app`, `tmp/cordova` => `dist/app`: App content;\n    * `dist`, `tmp/desktop` => `dist/build`: Build directory for each platform;\n    * `dist/desktop/` => `dist/release`: Release files for each platform;\n* `grunt --beta` => `webpack --env.release=beta`;\n* Targets:\n    * Web: `webpack --env.target=web`\n    * Desktop: `webpack --env.target=desktop`\n    * Cordova: `webpack --env.target=cordova`\n* Production vs Development:\n    * Production: `NODE_ENV=production`\n    * Development: `NODE_ENV=development`\n* Grunt Tasks:\n    * `gitinfo`: `git-revision-webpack-plugin`;\n    * `clean`: NPM script with `rimraf` package;\n    * `copy`:\n        * `copy:html`:\n            * `app/index.html` => `app/index.hbs` template;\n            * `html-webpack-plugin`;\n        * `copy:favicon` => `html-webpack-plugin`;\n        * `copy:icons` => `copy-webpack-plugin`;\n        * `copy:dist-icons` => `copy-webpack-plugin`;\n        * `copy:manifest` => `copy-webpack-plugin`;\n        * `copy:dist-manifest` => `copy-webpack-plugin`;\n        * `copy:fonts` => webpack's `url-loader`;\n        * `copy:desktop-app-content` => `webpack.config.main.js`'s `copy-webpack-plugin`;\n    * `eslint` => webpack `eslint-loader`;\n    * `sass` => webpack `sass-loader`;\n    * `postcss` => webpack plugins:\n        * `resolve-url-loader`\n        * `css-loader`\n        * `optimize-css-assets-webpack-plugin`\n        * `style-loader` (fallback)\n    * `inline` => webpack plugins:\n        * `script-ext-html-webpack-plugin`\n        * `html-webpack-inline-source-plugin`\n        * `ignore-assets-webpack-plugin`\n        * `extract-text-webpack-plugin`\n    * `htmlmin` => `html-webpack-plugin`'s `minify`;\n    * `string-replace`:\n        * `manifest` => `copy-webpack-plugin`\n        * `manifest-html` => `app/index.hbs` template\n        * `desktop-html` => `app/index.hbs` template\n        * `desktop-public-key` => webpack `url-loader`\n        * `cordova-html` => `app/index.hbs` template\n    * `uglify` => `uglifyjs-webpack-plugin`;\n    * `watch` => `webpack-dev-server`\n    * `concurrent` => No need for separate watcher because all HTML/JS/CSS are built by `webpack`, so only `webpack-dev-server` is enough;\n\nFile modifications\n==================\n\n* `app/styles/main.scss`: webpack can resolve the name with `~` prefix, so `../node_modules/` => `~`;\n* `desktop/main.js`:\n    * `require('./app.js')` directly so the webpack can recognize it and compile the file.\n\nDependencies\n=============\n\n* `webpack` upgrade to `^4.12.0`;\n* `webpack-dev-server` upgrade to `^3.1.4`;\n* `babel-loader` upgrade to `7.1.4` for webpack 4 support;\n* `babel-preset-es2015` => `babel-preset-env`;\n* `handlebars-loader` upgrade to `1.7.0`;\n\nNPM scripts\n==============\n\n* Build app content for web:\n    * `webpack`: Production\n    * `webpack:beta`: Beta\n    * `webpack:dev`: Development\n* Build app content for desktop target:\n    * `webpack:desktop`: Production\n    * `webpack:desktop:dev`: Development\n    * Internals:\n        * `webpack:desktop:app`: App content for desktop\n        * `webpack:desktop:main`: Electron main process\n        * `webpack:desktop:build`: Build both app content and main process for desktop (without specify whether it's production or development)\n* Build app content for cordova\n    * `webpack:cordova`\n* Webpack dev server\n    * `server`: Development\n    * `server:prod`: Production\n* Clean the build\n    * `clean`: Remove `dist` directory\n    * `clean:app`: Remove `dist/app` directory\n    * `clean:build`: Remove `dist/build` directory\n    * `clean:release`: Remove `dist/release` directory\n\nSigned-off-by: Tao Wang <twang2218@gmail.com>","distinct":true,"url":"https://api.github.com/repos/twang2218/keeweb/commits/7a9a41bc6e641b5390b93a9be4f95299bd9b9536"},{"sha":"e84d20f2d1b4d570d3088a5c182c476321d8fdc0","author":{"name":"Tao Wang","email":"7e7be65ebb8f801a58c89ee3c1a6a687290e952e@gmail.com"},"message":"Migrate to Electron Builder\n\nSigned-off-by: Tao Wang <twang2218@gmail.com>","distinct":true,"url":"https://api.github.com/repos/twang2218/keeweb/commits/e84d20f2d1b4d570d3088a5c182c476321d8fdc0"}]}
{"actor":{"display_login":"twang2218"}}