编译时配置
Fes.js 约定 .fes.js
文件为项目编译需要编译时配置文件,可以引入 node
端依赖项,不要引入浏览器端依赖项。
一份常见的配置示例如下(更多配置项请查阅配置):
js
import { defineBuildConfig } from '@fesjs/fes';
export default defineBuildConfig({
publicPath: '/',
mock: {
prefix: '/v2',
},
proxy: {
'/v2': {
target: 'https://api.douban.com/',
changeOrigin: true,
},
},
layout: {
title: 'Fes.js',
footer: 'Created by MumbelFe',
multiTabs: false,
menus: [
{
name: 'index',
},
{
name: 'onepiece',
},
{
name: 'store',
},
{
name: 'simpleList',
},
],
},
});
本地临时配置文件
可以新建 .fes.local.js
作为本地临时配置文件。这份配置会和 .fes.js
做 deep merge
后形成最终配置。
js
// .fes.js
export default { mock: false };
// .fes.local.js
export default {
mock: true,
devServer: { port: 8000 }
};
最终的配置是:
js
{
mock: true,
devServer: { port: 8000 }
};
WARNING
.fes.local.js
是本地验证使用的临时配置,仅在 fes dev
时有效,请将其添加到 .gitignore
,不要提交到 git
仓库中。
多环境多份配置
可以通过环境变量 FES_ENV
区分不同环境,来指定当前环境的配置文件,这份配置会和 .fes.js
做 deep merge
后形成最终配。
比如配置如下:
js
// .fes.js
export default { mock: false };
// .fes.uat.js
export default {
mock: true,
devServer: { port: 8000 }
};
当我们运行:
bash
FES_ENV=uat fes dev
这时候会命中 .fes.uat.js
这份环境配置,最终配置是:
js
{
mock: true,
devServer: { port: 8000 }
};
优先级
本地临时配置 > 环境配置 > 基础配置
TIP
如果多份配置中存在相同的配置项,则优先级高的会覆盖优先级低的。