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.ts
modern.config.js
modern.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