logo
  • 指南
  • 配置
  • 插件
  • API
  • 示例
  • 社区
  • Modern.js 2.x 文档
  • 简体中文
    • 简体中文
    • English
    • 开始
      介绍
      快速上手
      版本升级
      名词解释
      技术栈
      核心概念
      页面入口
      构建工具
      Web 服务器
      基础功能
      路由
      路由基础
      配置式路由
      数据管理
      数据获取
      数据写入
      数据缓存
      渲染
      服务端渲染(SSR)
      服务端流式渲染(Streaming SSR)
      渲染缓存
      静态站点生成(SSG)
      渲染预处理 (Render Preprocessing)
      样式开发
      引入 CSS
      使用 CSS Modules
      使用 CSS-in-JS
      使用 Tailwind CSS
      HTML 模板
      引用静态资源
      引用 JSON 文件
      引用 SVG 资源
      引用 Wasm 资源
      调试
      数据模拟(Mock)
      网络代理
      使用 Rsdoctor
      使用 Storybook
      测试
      Playwright
      Vitest
      Jest
      Cypress
      路径别名
      环境变量
      构建产物目录
      部署应用
      进阶功能
      使用 Rspack
      使用 BFF
      基础用法
      运行时框架
      扩展 BFF Server
      扩展一体化调用 SDK
      文件上传
      跨项目调用
      优化页面性能
      代码分割
      静态资源内联
      产物体积优化
      React Compiler
      提升构建性能
      浏览器兼容性
      配置底层工具
      源码构建模式
      服务端监控
      Monitors
      日志事件
      指标事件
      国际化
      基础概念
      快速开始
      配置说明
      语言检测
      资源加载
      路由集成
      API 参考
      高级用法
      最佳实践
      自定义 Web Server
      专题详解
      模块联邦
      简介
      开始使用
      应用级别模块
      服务端渲染
      部署
      集成国际化能力
      常见问题
      依赖安装问题
      命令行问题
      构建相关问题
      热更新问题
      从 Modern.js 2.0 升级
      概述
      配置变化
      入口变化
      自定义 Web Server 变化
      其他重要变更
      📝 编辑此页面
      上一页自定义 Web Server 变化

      #其他重要变更

      本篇文档介绍从 Modern.js 2.0 升级到 3.0 时,其他重要的不兼容变更以及相关的迁移说明。

      #不再支持 webpack 构建

      Modern.js 3.0 不再支持使用 webpack 作为构建工具,默认使用 Rspack 作为构建 bundler。Rspack 基于 Rust 实现,构建速度相比 webpack 有显著提升,同时与 webpack 配置高度兼容,大部分配置可以直接迁移。

      如果你的项目之前使用了 webpack 特定的配置或插件,需要检查项目中是否有 webpack 相关的自定义配置,并确认使用的 webpack 插件是否有 Rspack 对应版本。

      Tip

      Rspack 与 webpack 配置高度兼容,大部分情况下无需修改即可使用。

      #入口名称变化

      Modern.js 3.0 将项目默认入口名称改为 index,默认构建出的 HTML 文件为 index.html。index.html 是大多数 Web 服务器的默认首页文件,无需额外配置。

      如果你的项目部署配置中指定了特定的入口文件名,需要更新为 index.html。

      #别名改动

      Modern.js 3.0 对部分运行时路径别名进行了调整,需要更新相关的导入路径。路径映射对照如下:

      旧版路径新版路径说明
      @modern-js/runtime/bff@modern-js/plugin-bff/runtimeBFF 运行时路径
      @modern-js/runtime/server@modern-js/server-runtime服务端运行时路径

      #不再支持 pages 目录的约定式路由

      Modern.js 3.0 不再支持 Modern.js 1.0 版本引入的 pages 目录的约定式路由,统一使用 routes 目录的约定式路由。

      如果你的项目使用了 pages 目录,需要将 src/pages 目录重命名为 src/routes,并更新项目中所有引用 pages 目录的导入路径。详细迁移步骤请参考 约定式路由文档。

      #使用 React Router v7

      Modern.js 3.0 默认使用 React Router v7 作为路由库。React Router v7 相比 v6 只有少量的 不兼容变更。

      如果需要使用 React Router v5 或 React Router v6,需要使用自控式路由模式。自控式路由允许你完全控制路由配置,不受 Modern.js 约定式路由的限制。

      #使用 @modern-js/create 创建 Monorepo

      Modern.js 之前提供的 Monorepo 方案是基于 pnpm Workspace 实现的,并未提供实质性的 Monorepo 管理能力。在 v2.53.0 版本中,移除了使用 @modern-js/create 创建 Monorepo 项目的功能。推荐直接使用社区提供的 Monorepo 方案。

      #new 命令开启 test 能力

      Modern.js 之前提供的测试能力是基于 Jest 的简单封装。该封装导致 Jest 配置不直观、用户配置更加复杂等问题。在 v2.53.0 版本中,移除了在应用项目和模块项目中开启 test 功能的选项。推荐直接使用社区提供的测试方案。

      #Eslint 规则集

      Modern.js 之前提供了 ESLint 的完整规则集,涵盖了 @modern-js(针对 Node.js 项目的 Lint 规则)和 @modern-js-app(针对前端项目的 Lint 规则)。在 v2.60.0 版本中,我们正式移除了这些规则集。我们鼓励开发者根据自身需求选择合适的代码规范工具,直接使用 ESLint 并结合社区推荐的规则,或使用 Biome 以提升代码格式化的性能。