From 1e47f316c5fd5d2dd898a8f9d3be44c3a1f0d609 Mon Sep 17 00:00:00 2001 From: feirlau Date: Fri, 17 May 2024 14:56:15 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=94=AF=E6=8C=81chainWebpack?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 支持chainWebpack,可根据不同task进行配置 --- .../demo/component/build.lowcode.js | 3 +++ .../build-plugin-lowcode/src/config/user-config.js | 4 ++++ packages/build-plugin-lowcode/src/index.js | 14 +++++++++++++- 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/packages/build-plugin-lowcode/demo/component/build.lowcode.js b/packages/build-plugin-lowcode/demo/component/build.lowcode.js index 99dd729..824c70c 100644 --- a/packages/build-plugin-lowcode/demo/component/build.lowcode.js +++ b/packages/build-plugin-lowcode/demo/component/build.lowcode.js @@ -19,4 +19,7 @@ module.exports = { }, ], ], + chainWebpack(config, taskName) { + + }, }; diff --git a/packages/build-plugin-lowcode/src/config/user-config.js b/packages/build-plugin-lowcode/src/config/user-config.js index aeefd45..36703ab 100644 --- a/packages/build-plugin-lowcode/src/config/user-config.js +++ b/packages/build-plugin-lowcode/src/config/user-config.js @@ -68,4 +68,8 @@ module.exports = [ } }, }, + { + name: 'chainWebpack', + validation: 'object', + }, ]; diff --git a/packages/build-plugin-lowcode/src/index.js b/packages/build-plugin-lowcode/src/index.js index 87bf4bc..7a33f79 100644 --- a/packages/build-plugin-lowcode/src/index.js +++ b/packages/build-plugin-lowcode/src/index.js @@ -292,7 +292,7 @@ async function build(options, pluginOptions, execCompile) { }), ); const metaPathMap = {}; - metaPaths.forEach((item) => { + metaPaths.forEach((item) => { metaPathMap[path.basename(item).replace(path.extname(item), '')] = item; // metaPathMap[item.slice(item.lastIndexOf('/') + 1, item.lastIndexOf('.'))] = item; }); @@ -509,6 +509,8 @@ async function start(options, pluginOptions) { if (baseLibrary === 'rax') { config.module.rule('scss').use('rpx-loader').loader('rpx-loader').before('css-loader'); } + const chain = options.context.userConfig.chainWebpack; + if(chain) chain(config, 'lowcode-dev'); }); } @@ -709,6 +711,9 @@ async function bundleMetaV2(options, pluginOptions, execCompile, metaType) { config.output.path(path.resolve(rootDir, `${buildTarget}/${lowcodeDir}`)); config.externals({ ...COMMON_EXTERNALS_MAP[engineScope], ...externals }); useStyleLoader(config); + + const chain = options.context.userConfig.chainWebpack; + if(chain) chain(config, `lowcode-meta-${metaType}`); }); return metaPath; } @@ -920,6 +925,8 @@ async function bundleEditorView( const scssRule = config.module.rule('scss'); scssRule.use('rpx-loader').loader('rpx-loader').before('css-loader'); } + const chain = options.context.userConfig.chainWebpack; + if(chain) chain(config, 'lowcode-editor-view'); }); return viewPath; } @@ -1002,6 +1009,8 @@ async function bundleRenderView(options, pluginOptions, platform, execCompile) { const scssRule = config.module.rule('scss'); scssRule.use('rpx-loader').loader('rpx-loader').before('css-loader'); } + const chain = options.context.userConfig.chainWebpack; + if(chain) chain(config, `render-view-${platform}`); }); return viewPath; } @@ -1290,6 +1299,9 @@ async function bundleComponentMeta(webPackConfig, options, pluginOptions, execCo config.output.path(path.resolve(rootDir, `${buildTarget}/${lowcodeDir}`)); config.externals({ ...COMMON_EXTERNALS_MAP[engineScope], ...externals }); useStyleLoader(config); + + const chain = options.context.userConfig.chainWebpack; + if(chain) chain(config, taskName); }); })(component, idx); });