diff --git a/packages/webpack-uni-mp-loader/lib/script-new.js b/packages/webpack-uni-mp-loader/lib/script-new.js index f8fbbd104d10fd475e8f7f9f604d4138e9ac2bc2..828d4034ff2efbf3b77a73da8f0dd9dd0c885b79 100644 --- a/packages/webpack-uni-mp-loader/lib/script-new.js +++ b/packages/webpack-uni-mp-loader/lib/script-new.js @@ -125,12 +125,21 @@ module.exports = function (content, map) { usingComponents[name] = `/${source}` }) - const babelLoader = findBabelLoader(this.loaders) + let babelLoader = findBabelLoader(this.loaders) if (!babelLoader) { callback(new Error(uniI18n.__('mpLoader.findFail', { 0: 'babel-loader' })), content) } else { + const webpack = require('webpack') + if (webpack.version[0] > 4) { + // clone babelLoader and options + const index = this.loaders.indexOf(babelLoader) + const newBabelLoader = Object.assign({}, babelLoader) + Object.assign(newBabelLoader, { options: Object.assign({}, babelLoader.options) }) + this.loaders.splice(index, 1, newBabelLoader) + babelLoader = newBabelLoader + } addDynamicImport(babelLoader, resourcePath, dynamicImports) updateUsingComponents(resourcePath, usingComponents, type) @@ -139,4 +148,4 @@ module.exports = function (content, map) { }, err => { callback(err, content, map) }) -} +}