From 63c98b2d9c370e2c5bc9206107f1fe1aa3cadbdc Mon Sep 17 00:00:00 2001 From: Simon Leigh Date: Tue, 17 Dec 2019 17:51:16 +0900 Subject: [PATCH 1/3] npm build readjusted for now.sh, static build for resources --- now.json | 6 +++++- package.json | 3 ++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/now.json b/now.json index 49439d7248..9cebc3740c 100644 --- a/now.json +++ b/now.json @@ -17,11 +17,15 @@ "config": { "distDir": "dist" } + }, + { + "src": "resources/*", + "use": "@now/static" } ], "routes": [ { - "src": "/app/(.*).(js|icon|css)$", + "src": "/app/(.*).(js|icon|css|svg|png|gif|jpeg)$", "dest": "/$1.$2" }, { diff --git a/package.json b/package.json index 71dc33f654..6080d7bf92 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,8 @@ "start": "electron app/index.js", "lint": "eslint src/* --ext .ts,.tsx", "format": "prettier --write \"src/**/*\"", - "build": "rimraf compiled && env-cmd cross-env TS_NODE_PROJECT=\"tsconfig-webpack.json\" webpack --mode production --config webpack.production.conf.ts", + "build": "TS_NODE_PROJECT=\"tsconfig-webpack.json\" webpack --mode production --config webpack.production.config.ts", + "build:env": "rimraf compiled && env-cmd cross-env TS_NODE_PROJECT=\"tsconfig-webpack.json\" webpack --mode production --config webpack.production.conf.ts", "meta": "node scripts/meta.js", "prepack": "rimraf dist && env-cmd npm run meta && electron-builder --dir", "pack": "rimraf dist && env-cmd npm run meta && electron-builder", From acd897314aed498c17cb99efc2d1a097c2d5b71f Mon Sep 17 00:00:00 2001 From: Simon Leigh Date: Tue, 17 Dec 2019 18:38:25 +0900 Subject: [PATCH 2/3] switch to one webpack config file --- now.json | 2 +- package.json | 4 +- webpack.config.ts | 17 +++++-- webpack.production.config.ts | 92 ------------------------------------ 4 files changed, 17 insertions(+), 98 deletions(-) delete mode 100644 webpack.production.config.ts diff --git a/now.json b/now.json index 9cebc3740c..65797e69c5 100644 --- a/now.json +++ b/now.json @@ -15,7 +15,7 @@ "src": "package.json", "use": "@now/static-build", "config": { - "distDir": "dist" + "distDir": "compiled" } }, { diff --git a/package.json b/package.json index 6080d7bf92..005b4d1384 100644 --- a/package.json +++ b/package.json @@ -13,8 +13,8 @@ "start": "electron app/index.js", "lint": "eslint src/* --ext .ts,.tsx", "format": "prettier --write \"src/**/*\"", - "build": "TS_NODE_PROJECT=\"tsconfig-webpack.json\" webpack --mode production --config webpack.production.config.ts", - "build:env": "rimraf compiled && env-cmd cross-env TS_NODE_PROJECT=\"tsconfig-webpack.json\" webpack --mode production --config webpack.production.conf.ts", + "build": "TS_NODE_PROJECT=\"tsconfig-webpack.json\" webpack --mode production", + "build:env": "rimraf compiled && env-cmd cross-env TS_NODE_PROJECT=\"tsconfig-webpack.json\" webpack --mode production --config webpack.production.config.ts", "meta": "node scripts/meta.js", "prepack": "rimraf dist && env-cmd npm run meta && electron-builder --dir", "pack": "rimraf dist && env-cmd npm run meta && electron-builder", diff --git a/webpack.config.ts b/webpack.config.ts index e2a8dce2d5..dfd5a57927 100644 --- a/webpack.config.ts +++ b/webpack.config.ts @@ -4,6 +4,7 @@ import HtmlWebpackPlugin from 'html-webpack-plugin' import express from 'express' import ErrorOverlayPlugin from 'error-overlay-webpack-plugin' import CopyPlugin from 'copy-webpack-plugin' +import TerserPlugin from 'terser-webpack-plugin' module.exports = (env, argv) => { const config = { @@ -16,12 +17,22 @@ module.exports = (env, argv) => { filename: 'bundle.js', // the output bundle - path: path.resolve(__dirname, 'compiled'), - publicPath: '' + path: path.resolve(__dirname, 'compiled') }, devtool: 'inline-source-map', + optimization: { + minimize: true, + minimizer: [ + new TerserPlugin({ + terserOptions: { + keep_fnames: /Block|Value|Bool|BooleanLiteral|Null|NullLiteral|Literal|NumberLiteral|StringLiteral|RegexLiteral|Arr|Obj|Op|Parens/ + } + }) + ] + }, + module: { rules: [ { @@ -121,7 +132,7 @@ module.exports = (env, argv) => { 'webpack-dev-server/client?http://localhost:3000', 'webpack/hot/only-dev-server' ) - config.output.publicPath = '/app' + ;(config.output as any).publicPath = '/app' } return config diff --git a/webpack.production.config.ts b/webpack.production.config.ts deleted file mode 100644 index b2f95a52e6..0000000000 --- a/webpack.production.config.ts +++ /dev/null @@ -1,92 +0,0 @@ -import path from 'path' -import webpack from 'webpack' -import HtmlWebpackPlugin from 'html-webpack-plugin' -import ErrorOverlayPlugin from 'error-overlay-webpack-plugin' -import CopyPlugin from 'copy-webpack-plugin' -import TerserPlugin from 'terser-webpack-plugin' - -module.exports = { - mode: 'production', - entry: [ - './src/index.tsx' - // the entry point of our app - ], - - output: { - filename: 'bundle.js', - // the output bundle - - path: path.resolve(__dirname, 'dist'), - - publicPath: '/app' - // necessary for HMR to know where to load the hot update chunks - }, - - optimization: { - minimize: true, - minimizer: [ - new TerserPlugin({ - terserOptions: { - keep_fnames: /Block|Value|Bool|BooleanLiteral|Null|NullLiteral|Literal|NumberLiteral|StringLiteral|RegexLiteral|Arr|Obj|Op|Parens/ - } - }) - ] - }, - - module: { - rules: [ - { - test: /\.css$/i, - use: ['style-loader', 'css-loader'] - }, - { - test: /\.(png|jpe?g|gif|svg|eot|ttf|woff|woff2)$/i, - loader: 'url-loader', - options: { - limit: 8192 - } - }, - { - test: /\.tsx?$/, - use: [{ loader: 'ts-loader' }], - exclude: /node_modules/ - }, - { - test: /\.md$/, - use: [ - { - loader: 'raw-loader' - } - ] - } - ] - }, - - plugins: [ - new webpack.NoEmitOnErrorsPlugin(), - // do not emit compiled assets that include errors - new HtmlWebpackPlugin(), - new ErrorOverlayPlugin(), - new webpack.EnvironmentPlugin([ - 'NODE_ENV', - 'AMPLIFY_AUTH_IDENTITY_POOL_ID', - 'AMPLIFY_AUTH_REGION', - 'AMPLIFY_PINPOINT_APPID', - 'AMPLIFY_PINPOINT_REGION', - 'BOOST_NOTE_BASE_URL' - ]), - new CopyPlugin([ - { - from: path.join(__dirname, 'node_modules/codemirror/theme'), - to: 'codemirror/theme' - } - ]) - ], - - resolve: { - extensions: ['.tsx', '.ts', '.js'] - }, - node: { - fs: 'empty' - } -} From 71d0dbfcc7a2a190f83886e3f7b91628eb17ca6a Mon Sep 17 00:00:00 2001 From: Simon Leigh Date: Tue, 17 Dec 2019 19:09:42 +0900 Subject: [PATCH 3/3] aligned build:env cmd with newe webpack config files --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 005b4d1384..e4d35e484e 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ "lint": "eslint src/* --ext .ts,.tsx", "format": "prettier --write \"src/**/*\"", "build": "TS_NODE_PROJECT=\"tsconfig-webpack.json\" webpack --mode production", - "build:env": "rimraf compiled && env-cmd cross-env TS_NODE_PROJECT=\"tsconfig-webpack.json\" webpack --mode production --config webpack.production.config.ts", + "build:env": "rimraf compiled && env-cmd cross-env TS_NODE_PROJECT=\"tsconfig-webpack.json\" webpack --mode production", "meta": "node scripts/meta.js", "prepack": "rimraf dist && env-cmd npm run meta && electron-builder --dir", "pack": "rimraf dist && env-cmd npm run meta && electron-builder",