用途:把现有 Meteor 应用迁移到 Rspack(Meteor 3.4+),或在 Meteor 3.6 beta 上把 Rspack 1 升级到 2。Rspack 编译应用代码,Meteor 负责构建 Atmosphere 包并组装最终 bundle;包可保留,但需审计其架构与浏览器依赖。建议先启用 "meteor": { "modern": true } 并修复 Babel 回退,设置与辅助配置可参考 meteor-modern-build-stack。
版本配对:@meteorjs/rspack 需与 Meteor 版本而非 @rspack/core 或 @rspack/cli 对齐。3.4 配 rspack 1.0.0、@meteorjs/rspack 1.0.0;3.4.1 与 3.5 配 1.1.0、2.0.1;3.5.1 配 1.2.0、2.1.0;3.5.2 配 1.3.0、2.2.0;3.6-beta.0 配 1.4.0-beta360.0、3.0.0-beta.1;3.6-beta.1 配 1.4.0-beta360.1、3.0.0-beta.2;3.6-beta.3 配 1.4.0-beta360.3、3.0.0-beta.3;3.6-rc.0 配 1.4.0-rc360.0、3.0.0-rc.0。检查 .meteor/versions、package.json 与 lockfile,注意 Atmosphere、Meteor npm 集成与 Rspack 核心版本相互独立;启用自动安装时启动会对齐依赖,需审阅并提交变更;meteor update --npm 是替代方案。
决策与要求:在 package.json 的 meteor.mainModule 中定义 client 与 server 入口,必要时另设 testModule;没有 mainModule 时 Rspack 无入口,且不会自动发现模块。追踪 client 与 client-test 图,若触达 CommonJS 导出赋值、Node 内置模块、仅服务端的本地包入口或干净检出中缺失的生成输入,先修复边界再激活。应用代码中的嵌套 import(位于 if、函数或其他块内的 ES import)须移到顶层或改为 dynamic import()/require,Atmosphere 包中可保留。依赖 Meteor 构建插件(less、fourseven:scss、coffeescript、zodern:melte、jorgenvatle:vite 等)时需规划 Rspack loader 替换并在移除前证明能力对等;仅服务端应用只设 mainModule.server,Rspack 仍会打包服务端。CommonJS 包的裸默认导入优先改用命名空间导入 import * as x。运行 meteor add rspack,并观察 verbose [Transpiler] 日志中的剩余失败。
构建目录:集成会写入 _build/、public/build-assets/、public/build-chunks/、private/build-assets/,并自动加入 .gitignore;若项目已占用这些名称,用 meteor.buildContext、assetsContext、chunksContext 重命名。不要编辑这些目录下文件,需将其排除在 IDE 索引和各类递归工具扫描之外。.gitignore 不会配置这些工具,.meteorignore 或 METEOR_IGNORE 也不要匹配活动构建上下文。
CI 与 Docker:在本地解决必需的 npm 更新并提交 package.json 与 lockfile,使用现有包管理器以冻结方式安装(含 dev 依赖)后构建。在 rspack@1.3.0(Meteor 3.5.2)上,meteor.autoInstallDeps: false 仍会报告缺失/过期依赖和手动命令,早期退出行为可能跳过这些检查;先查看首个依赖/配置错误与实际项目根目录再决定修复。
限制与未提供:资料仅给出通用迁移流程、版本配对和引用文件(client-graph-preflight.md、framework-and-css.md、code-migrations.md、troubleshooting.md、eval-cases.md),未提供具体安装命令、代码示例细节、收费信息、支持平台、性能数据或作者与授权信息,这些暂未提供。