sublime text 仅是编辑器,不参与微前端联调;真正实现模块联邦联调的是 webpack-dev-server 的配置与运行时能力,需确保 remote 先启动、地址匹配、remoteentry.js 可访问,并通过 sublime 高效排查配置一致性问题。

Sublime Text 本身不参与微前端联调,它只是编辑器;真正实现模块联邦联调的是 webpack-dev-server 的配置与运行时能力。别在 Sublime 里找“联调开关”,重点是配对 webpack.config.js 和启动命令。
为什么本地联调总报 Module not found: Error: Can't resolve 'xxx' in remote
这不是 Sublime 的问题,而是 webpack-dev-server 启动顺序和远程入口地址没对齐。Host 应用启动时会去请求 remoteEntry.js,如果 Remote 应用没跑起来、端口不对、或路径拼错,就会直接报这个错。
- 确保 Remote 应用先启动:
npm run dev(或你定义的启动脚本),监听端口如3001 - Host 的
remotes配置必须严格匹配 Remote 的实际地址:remoteApp@http://localhost:3001/remoteEntry.js—— 注意协议、端口、文件名全都要一致 - Remote 的
filename必须设为remoteEntry.js(默认值),否则 Host 找不到入口文件 - 检查浏览器控制台 Network 标签页,看是否真发出了
remoteEntry.js请求,状态码是不是200
webpack-dev-server 多应用热更新失效的常见原因
Webpack 5 的 HMR 在 Module Federation 场景下默认只作用于当前应用,Remote 修改后 Host 不会自动刷新 —— 这不是 bug,是设计使然。要实现跨应用热更新,得靠 webpack-dev-server 的代理 + watch 模式协同。
PigX UI Pro 前端开发指南 - Vue 3 + TypeScript + Element Plus。当用户提到 PigX UI、PigX 前端、lgb-mgui 项目、Vue 3 企业级后台开发、Element Plus 后台开发时使用此技能。
- Host 的
devServer.proxy要把 Remote 的静态资源路径代理过去,比如:{ '/remoteEntry.js': { target: 'http://localhost:3001', changeOrigin: true } } - Remote 应用必须启用
hot: true,且不能加hotOnly: true(否则错误时不 fallback 到 reload) - 避免两个
webpack-dev-server同时监听同一端口;推荐 Remote 用3001,Host 用3000,并确保系统防火墙没拦截 - 如果用了 Monorepo(如 lerna),确认每个子包的
output.publicPath是相对路径('auto'或'/'),而非绝对 URL
Sublime Text 在联调中真正能帮上的三件事
它不打包、不启动服务、不解析模块,但能显著提升排查效率 —— 关键在于快速定位和比对配置。
- 用 Sublime 的多光标+正则替换,批量修改多个
webpack.config.js中的shared版本号,比如把所有react的requiredVersion统一改成'^18.2.0' - 安装
BracketHighlighter插件,一眼看出exposes对象里漏掉的逗号或引号不闭合(这类语法错误会导致整个remoteEntry.js生成失败) - 用侧边栏多项目功能,同时打开 Host 和 Remote 的源码目录,对比
src/components/Button.js和exposes: { './Button': './src/components/Button' }中路径是否完全一致(大小写、斜杠方向、扩展名都不能错)
最常被忽略的点:Remote 应用构建产物里 remoteEntry.js 的内容,必须包含完整的模块导出声明,而不仅仅是 JS 文件。一旦你改了组件路径却忘了同步更新 exposes,Sublime 看着没问题,webpack-dev-server 却根本不会暴露那个模块 —— 它不会报错,只会静默忽略。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










