From e5101b415e709536e897cf891258e29bf622567e Mon Sep 17 00:00:00 2001 From: Evan You Date: Tue, 22 May 2018 13:25:35 -0400 Subject: [PATCH] perf: revert babel/ts thread behavior --- packages/@vue/cli-plugin-babel/README.md | 4 ++++ packages/@vue/cli-plugin-babel/index.js | 7 +++++++ packages/@vue/cli-plugin-typescript/README.md | 4 ++++ packages/@vue/cli-plugin-typescript/index.js | 6 ++++++ 4 files changed, 21 insertions(+) diff --git a/packages/@vue/cli-plugin-babel/README.md b/packages/@vue/cli-plugin-babel/README.md index 23c08bc4f..7d978c11a 100644 --- a/packages/@vue/cli-plugin-babel/README.md +++ b/packages/@vue/cli-plugin-babel/README.md @@ -22,6 +22,10 @@ module.exports = { [cache-loader](https://github.com/webpack-contrib/cache-loader) is enabled by default and cache is stored in `/node_modules/.cache/babel-loader`. +## Parallelization + +[thread-loader](https://github.com/webpack-contrib/thread-loader) is enabled by default when the machine has more than 1 CPU cores. This can be turned off by setting `parallel: false` in `vue.config.js`. + ## Installing in an Already Created Project ``` sh diff --git a/packages/@vue/cli-plugin-babel/index.js b/packages/@vue/cli-plugin-babel/index.js index 1c303052a..da445f975 100644 --- a/packages/@vue/cli-plugin-babel/index.js +++ b/packages/@vue/cli-plugin-babel/index.js @@ -1,5 +1,6 @@ module.exports = (api, options) => { const { genCacheConfig } = require('@vue/cli-shared-utils') + const useThreads = process.env.NODE_ENV === 'production' && options.parallel const cliServicePath = require('path').dirname(require.resolve('@vue/cli-service')) api.chainWebpack(webpackConfig => { @@ -29,6 +30,12 @@ module.exports = (api, options) => { .options(genCacheConfig(api, options, 'babel-loader', 'babel.config.js')) .end() + if (useThreads) { + jsRule + .use('thread-loader') + .loader('thread-loader') + } + jsRule .use('babel-loader') .loader('babel-loader') diff --git a/packages/@vue/cli-plugin-typescript/README.md b/packages/@vue/cli-plugin-typescript/README.md index 1632d151a..0ddc0e5d4 100644 --- a/packages/@vue/cli-plugin-typescript/README.md +++ b/packages/@vue/cli-plugin-typescript/README.md @@ -18,6 +18,10 @@ If opted to use [TSLint](https://palantir.github.io/tslint/) during project crea [cache-loader](https://github.com/webpack-contrib/cache-loader) is enabled by default and cache is stored in `/node_modules/.cache/ts-loader`. +## Parallelization + +[thread-loader](https://github.com/webpack-contrib/thread-loader) is enabled by default when the machine has more than 1 CPU cores. This can be turned off by setting `parallel: false` in `vue.config.js`. + ## Installing in an Already Created Project ``` sh diff --git a/packages/@vue/cli-plugin-typescript/index.js b/packages/@vue/cli-plugin-typescript/index.js index 0451dcb9e..a141a1154 100644 --- a/packages/@vue/cli-plugin-typescript/index.js +++ b/packages/@vue/cli-plugin-typescript/index.js @@ -26,6 +26,12 @@ module.exports = (api, options) => { options: genCacheConfig(api, options, 'ts-loader', 'tsconfig.json') }) + if (useThreads) { + addLoader({ + loader: 'thread-loader' + }) + } + if (api.hasPlugin('babel')) { addLoader({ loader: 'babel-loader'