From 77dd1d0a44dad250186c6f7625226fa994a4f0e5 Mon Sep 17 00:00:00 2001 From: Pagan Gazzard Date: Thu, 20 Dec 2018 15:34:30 +0000 Subject: [PATCH 1/2] Use fork-ts-checker to speed up the webpack build Change-type: patch --- package-lock.json | 77 ++++++++++++++++++++++++++++++++++++----------- package.json | 1 + webpack.config.js | 30 ++++++++++-------- 3 files changed, 77 insertions(+), 31 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5d3be158..d1af2c74 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "balena-supervisor", - "version": "9.2.0", + "version": "9.2.3", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -1554,7 +1554,7 @@ }, "cacache": { "version": "10.0.4", - "resolved": "http://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz", "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==", "dev": true, "requires": { @@ -2199,7 +2199,7 @@ }, "dbus-native": { "version": "0.2.5", - "resolved": "http://registry.npmjs.org/dbus-native/-/dbus-native-0.2.5.tgz", + "resolved": "https://registry.npmjs.org/dbus-native/-/dbus-native-0.2.5.tgz", "integrity": "sha512-ocxMKCV7QdiNhzhFSeEMhj258OGtvpANSb3oWGiotmI5h1ZIse0TMPcSLiXSpqvbYvQz2Y5RsYPMNYLWhg9eBw==", "dev": true, "requires": { @@ -2354,7 +2354,7 @@ "dependencies": { "globby": { "version": "6.1.0", - "resolved": "http://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", "dev": true, "requires": { @@ -2617,7 +2617,7 @@ }, "string_decoder": { "version": "0.10.31", - "resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", "dev": true } @@ -3458,6 +3458,51 @@ "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" }, + "fork-ts-checker-webpack-plugin": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-0.5.2.tgz", + "integrity": "sha512-a5IG+xXyKnpruI0CP/anyRLAoxWtp3lzdG6flxicANnoSzz64b12dJ7ASAVRrI2OaWwZR2JyBaMHFQqInhWhIw==", + "dev": true, + "requires": { + "babel-code-frame": "^6.22.0", + "chalk": "^2.4.1", + "chokidar": "^2.0.4", + "micromatch": "^3.1.10", + "minimatch": "^3.0.4", + "tapable": "^1.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, "form-data": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", @@ -3586,14 +3631,12 @@ "balanced-match": { "version": "1.0.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, "dev": true, - "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -3613,8 +3656,7 @@ "concat-map": { "version": "0.0.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "console-control-strings": { "version": "1.1.0", @@ -3762,7 +3804,6 @@ "version": "3.0.4", "bundled": true, "dev": true, - "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -6762,7 +6803,7 @@ }, "next-tick": { "version": "1.0.0", - "resolved": "http://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", "dev": true }, @@ -7112,7 +7153,7 @@ }, "os-homedir": { "version": "1.0.2", - "resolved": "http://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" }, "os-locale": { @@ -7162,7 +7203,7 @@ }, "os-tmpdir": { "version": "1.0.2", - "resolved": "http://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" }, "osenv": { @@ -7311,7 +7352,7 @@ }, "path-is-absolute": { "version": "1.0.1", - "resolved": "http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "path-is-inside": { @@ -8684,7 +8725,7 @@ }, "source-map": { "version": "0.2.0", - "resolved": "http://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz", "integrity": "sha1-2rc/vPwrqBm03gO9b26qSBZLP50=", "dev": true, "optional": true, @@ -8896,7 +8937,7 @@ }, "stream-browserify": { "version": "2.0.1", - "resolved": "http://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", "dev": true, "requires": { @@ -8976,7 +9017,7 @@ }, "string_decoder": { "version": "1.1.1", - "resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { "safe-buffer": "~5.1.0" diff --git a/package.json b/package.json index af07c6aa..5be528ba 100644 --- a/package.json +++ b/package.json @@ -59,6 +59,7 @@ "duration-js": "^4.0.0", "event-stream": "3.3.4", "express": "^4.0.0", + "fork-ts-checker-webpack-plugin": "^0.5.2", "husky": "^1.3.0", "istanbul": "^0.4.5", "json-mask": "^0.3.8", diff --git a/webpack.config.js b/webpack.config.js index 6aca1e27..fb603a0d 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -4,6 +4,7 @@ var fs = require('fs'); var _ = require('lodash'); var path = require('path'); const CopyWebpackPlugin = require('copy-webpack-plugin'); +var ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin'); var externalModules = [ 'sqlite3', @@ -52,18 +53,6 @@ externalModules.push(new RegExp('^(' + _.reject(maybeOptionalModules, requiredMo console.log('Using the following dependencies as external:', externalModules); module.exports = function (env) { - let plugins = [ - new CopyWebpackPlugin([ - { - from: './src/migrations', - to: 'migrations' - } - ]), - new webpack.ContextReplacementPlugin( - /\.\/migrations/, - path.resolve(__dirname, 'src/migrations') - ) - ] return { mode: env == null || !env.noOptimize ? 'production' : 'development', entry: './src/app.coffee', @@ -97,6 +86,9 @@ module.exports = function (env) { use: [ { loader: 'ts-loader', + options: { + transpileOnly: true, + } } ] } @@ -112,6 +104,18 @@ module.exports = function (env) { } return callback() }, - plugins: plugins + plugins: [ + new ForkTsCheckerWebpackPlugin(), + new CopyWebpackPlugin([ + { + from: './src/migrations', + to: 'migrations' + } + ]), + new webpack.ContextReplacementPlugin( + /\.\/migrations/, + path.resolve(__dirname, 'src/migrations') + ), + ] }; } From 1130ecd3ce83e379a4f1aa41981836be2470151c Mon Sep 17 00:00:00 2001 From: Pagan Gazzard Date: Thu, 20 Dec 2018 16:42:32 +0000 Subject: [PATCH 2/2] Force `devtool: none` to avoid issues with env.noOptimize Change-type: patch --- webpack.config.js | 1 + 1 file changed, 1 insertion(+) diff --git a/webpack.config.js b/webpack.config.js index fb603a0d..468e42a0 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -55,6 +55,7 @@ console.log('Using the following dependencies as external:', externalModules); module.exports = function (env) { return { mode: env == null || !env.noOptimize ? 'production' : 'development', + devtool: 'none', entry: './src/app.coffee', output: { filename: 'app.js',