UNPKG

crootfast

Version:

大前端工程化命令行脚手架

54 lines (49 loc) 1.75 kB
const { ModuleFederationPlugin } = require('webpack').container; const { HotModuleReplacementPlugin } = require('webpack'); // const ExternalTemplateRemotesPlugin = require("external-remotes-plugin"); const { getclipath, pathJoin, getGlobal } = require("../../../common/utils/path"); const { getwebpropath } = require('./utils'); const { mergeAlias, mergePort, mergeProxy, mergePlugins } = require("./utils/customMergeConfig"); const isProduction = getGlobal("isProduction"); const appname = getGlobal("appname"); // 当前项目 const frame = getGlobal("frame"); // 当前框架 const webMicroPath = pathJoin(`./apps/${frame}/${appname}/m.config`, getwebpropath('.')); const microConfig = require(webMicroPath); const webpackMicroConfig = { base: { entry: microConfig?.base?.entry, resolve: { // import 或 require 的引用模块的别名,就是为了让你模块引入变得更简单。 alias: mergeAlias({}, microConfig?.base?.alias) }, plugins: [] }, dev: { devServer: { port: mergePort(microConfig?.dev?.port), proxy: mergeProxy({}, microConfig?.dev?.proxyTable), server: microConfig?.dev?.server, open: microConfig?.dev?.open, hot: microConfig?.dev?.hot ?? true } }, build: {} }; if (microConfig?.base?.mfp) { if (microConfig?.base?.mfp?.length) { microConfig?.base?.mfp.map(itemOptions => { webpackMicroConfig.base.plugins.push( new ModuleFederationPlugin(itemOptions) ); }); webpackMicroConfig.base.plugins.push( // 热加载 new HotModuleReplacementPlugin() ); } } // console.log( // 'webpackMicroConfig', // JSON.stringify(webpackMicroConfig, null, 2) // ); module.exports = webpackMicroConfig;