feat: allow parallel option to be an integer (#3864)

closes #3850
This commit is contained in:
Haoqun Jiang
2019-04-27 20:11:16 +08:00
committed by GitHub
parent e9259cdacd
commit a351cbadb8
4 changed files with 17 additions and 6 deletions

View File

@@ -16,7 +16,7 @@ function genTranspileDepRegex (transpileDependencies) {
}
module.exports = (api, options) => {
const useThreads = process.env.NODE_ENV === 'production' && options.parallel
const useThreads = process.env.NODE_ENV === 'production' && !!options.parallel
const cliServicePath = require('path').dirname(require.resolve('@vue/cli-service'))
const transpileDepRegex = genTranspileDepRegex(options.transpileDependencies)
@@ -59,9 +59,13 @@ module.exports = (api, options) => {
.end()
if (useThreads) {
jsRule
const threadLoaderConfig = jsRule
.use('thread-loader')
.loader('thread-loader')
if (typeof options.parallel === 'number') {
threadLoaderConfig.options({ workers: options.parallel })
}
}
jsRule

View File

@@ -2,7 +2,7 @@ const path = require('path')
module.exports = (api, options) => {
const fs = require('fs')
const useThreads = process.env.NODE_ENV === 'production' && options.parallel
const useThreads = process.env.NODE_ENV === 'production' && !!options.parallel
api.chainWebpack(config => {
config.resolveLoader.modules.prepend(path.join(__dirname, 'node_modules'))
@@ -37,7 +37,11 @@ module.exports = (api, options) => {
if (useThreads) {
addLoader({
loader: 'thread-loader'
loader: 'thread-loader',
options:
typeof options.parallel === 'number'
? { workers: options.parallel }
: {}
})
}

View File

@@ -10,7 +10,10 @@ const schema = createSchema(joi => joi.object({
runtimeCompiler: joi.boolean(),
transpileDependencies: joi.array(),
productionSourceMap: joi.boolean(),
parallel: joi.boolean(),
parallel: joi.alternatives().try([
joi.boolean(),
joi.number().integer()
]),
devServer: joi.object(),
pages: joi.object().pattern(
/\w+/,

View File

@@ -38,7 +38,7 @@ export interface ProjectOptions {
runtimeCompiler?: boolean;
transpileDependencies?: Array<string | RegExp>;
productionSourceMap?: boolean;
parallel?: boolean;
parallel?: boolean | number;
devServer?: object;
pages?: {
[key: string]: PageEntry | PageConfig;