mirror of
https://github.com/WeBankFinTech/fes.js.git
synced 2025-04-05 19:41:57 +08:00
110 lines
2.2 KiB
Markdown
110 lines
2.2 KiB
Markdown
# 编译时配置
|
||
|
||
Fes.js 约定 `.fes.js` 文件为项目编译需要编译时配置文件,可以引入 `node` 端依赖项,不要引入浏览器端依赖项。
|
||
|
||
一份常见的配置示例如下(更多配置项请查阅[配置](../reference/config)):
|
||
|
||
```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: 8080 }
|
||
};
|
||
```
|
||
|
||
最终的配置是:
|
||
|
||
```js
|
||
{
|
||
mock: true,
|
||
devServer: { port: 8080 }
|
||
};
|
||
```
|
||
|
||
::: 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: 8080 }
|
||
};
|
||
```
|
||
|
||
当我们运行:
|
||
|
||
```bash
|
||
FES_ENV=uat fes dev
|
||
```
|
||
|
||
这时候会命中 `.fes.uat.js` 这份环境配置,最终配置是:
|
||
|
||
```js
|
||
{
|
||
mock: true,
|
||
devServer: { port: 8080 }
|
||
};
|
||
```
|
||
|
||
## 优先级
|
||
|
||
本地临时配置 > 环境配置 > 基础配置
|
||
|
||
::: tip
|
||
如果多份配置中存在相同的配置项,**则优先级高的会覆盖优先级低的**。
|
||
:::
|