From a5d4f6c5f983311fd01e5f1bf59c8685a55ba556 Mon Sep 17 00:00:00 2001 From: qiang Date: Tue, 16 Aug 2022 16:32:50 +0800 Subject: [PATCH] fix(mp): build components with webpack5 --- packages/vue-cli-plugin-uni/lib/mp/index.js | 9 +++++++++ .../lib/plugin/generate-component.js | 6 +++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/packages/vue-cli-plugin-uni/lib/mp/index.js b/packages/vue-cli-plugin-uni/lib/mp/index.js index ffcb975d0..a13bc6cb7 100644 --- a/packages/vue-cli-plugin-uni/lib/mp/index.js +++ b/packages/vue-cli-plugin-uni/lib/mp/index.js @@ -169,6 +169,10 @@ module.exports = { webpackConfig.optimization.splitChunks = require('../split-chunks')() + if (webpack.version[0] > 4) { + webpackConfig.optimization.chunkIds = 'named' + } + parseEntry() const statCode = getPlatformStat() @@ -330,6 +334,11 @@ ${globalEnv}.__webpack_require_UNI_MP_PLUGIN__ = __webpack_require__;` } } + if (process.env.NODE_ENV === 'production' && webpack.version[0] > 4) { + // 暂时禁用,否则导致 provide 被压缩和裁剪 + webpackConfig.optimization.usedExports(false) + } + if (process.env.UNI_SUBPACKGE || process.env.UNI_MP_PLUGIN) { initSubpackageConfig(webpackConfig, vueOptions) } diff --git a/packages/webpack-uni-mp-loader/lib/plugin/generate-component.js b/packages/webpack-uni-mp-loader/lib/plugin/generate-component.js index 6502daed8..f49deac62 100644 --- a/packages/webpack-uni-mp-loader/lib/plugin/generate-component.js +++ b/packages/webpack-uni-mp-loader/lib/plugin/generate-component.js @@ -70,7 +70,11 @@ module.exports = function generateComponent (compilation, jsonpFunction = 'webpa const modules = compilation.modules const concatenatedModules = modules.filter(module => module.modules) - const uniModuleId = modules.find(module => module.resource && normalizePath(module.resource) === uniPath).id + let uniModule = modules.find(module => module.resource && normalizePath(module.resource) === uniPath) + if (!uniModule && webpack.version[0] > 4) { + uniModule = modules.find(module => module.rootModule && module.rootModule.resource && normalizePath(module.rootModule.resource) === uniPath) + } + const uniModuleId = uniModule.id const styleImports = {} const fixSlots = {} const vueOuterComponentSting = 'vueOuterComponents' -- GitLab