diff --git a/lib/builder/webpack/base.js b/lib/builder/webpack/base.js index 3847ff8ba7..8681d6647b 100644 --- a/lib/builder/webpack/base.js +++ b/lib/builder/webpack/base.js @@ -142,14 +142,7 @@ export default class WebpackBaseConfig { exclude: file => { // not exclude files outside node_modules if (/node_modules/.test(file)) { - let transpile = this.options.build.transpile || [] - // transpile supports string like 'vue-lib' - if (!Array.isArray(transpile)) { - transpile = [transpile] - } - // include SFCs in node_modules - transpile.push(/\.vue\.js/) - for (let pkg of transpile) { + for (let pkg of this.options.build.transpile) { // item in transpile can be string or regex object if (new RegExp(pkg).test(file)) { return false diff --git a/lib/common/options.js b/lib/common/options.js index a8fd6e2b8d..6494fe747f 100644 --- a/lib/common/options.js +++ b/lib/common/options.js @@ -187,5 +187,9 @@ Options.from = function (_options) { if (options.dev) { options.build.extractCSS = false } + + // include SFCs in node_modules + options.build.transpile = [/\.vue\.js/].concat(options.build.transpile || []) + return options }