Modern.js 中有三种配置,分别是编译时配置、运行时配置和服务端运行时配置。
编译时配置可以在两个位置进行配置:
modern.config.(ts|js|mjs) 文件package.json 文件
Modern.js 不支持同时在 package.json 中和 modern.config.ts 中配置同一个配置项,推荐在 modern.config.ts 中进行配置。如果 Modern.js 检测到重复配置导致的冲突,将会抛出警告。
运行时配置可以在 src/modern.runtime.(ts|js|mjs) 文件中配置。
服务端运行时配置可以在 server/modern.server.(ts|js|mjs) 中进行配置。
Modern.js 的配置文件定义在项目的根目录下,支持 .ts, .js 和 .mjs 格式:
modern.config.tsmodern.config.jsmodern.config.mjs我们推荐使用 .ts 格式的配置文件,它提供了友好的 TypeScript 类型提示,从而帮助你避免配置中的错误。
从 @modern-js/app-tools 中导入 defineConfig 工具函数, 它会帮助你进行配置的类型推导和类型补全:
当你使用 Rspack 作为打包工具时,由于 webpack 和 Rspack 的配置类型存在一些差异,需要为 defineConfig 指定 <'rspack'> 泛型:
如果你在开发一个非 TypeScript 项目,可以使用 .js 格式的配置文件:
你也可以通过 process.env.NODE_ENV,根据环境做不同配置:
Modern.js 支持在配置文件中导出一个函数,你可以在函数中动态计算配置,并返回给 Modern.js。
该函数接受以下入参:
env:对应 process.env.NODE_ENV 的值。
modern dev 或 modern start 时,env 的值为 development。modern build 或 modern serve 时,env 的值为 production。command:对应当前运行的命令,如 dev、start