一、默认配置
config.default.js 为默认的配置文件,所有环境都会加载这个配置文件,不过其他环境的配置的会覆盖默认配置的同名配置。
/* eslint valid-jsdoc: "off" */
'use strict';
/**
* @param {Egg.EggAppInfo} appInfo app info
*/
module.exports = appInfo => {
/**
* built-in config
* @type {Egg.EggAppConfig}
**/
const config = exports = {};
// 关闭 csrf,默认开启
config.security = {
csrf: {
enable: false,
},
};
// use for cookie sign key, should change to your own and keep security
config.keys = appInfo.name + '_1599042231246_4485';
// add your middleware config here
config.middleware = [];
// add your user config here
const userConfig = {
// myAppName: 'egg',
};
return {
...config,
...userConfig,
};
};
二、调试环境
本地启动 egg-bin dev 的应用是以 env: local 启动的,读取的配置也是 config.default.js 和 config.local.js 合并的结果。
对本地的定制化需要在 config 文件夹下面新建 config.local.js。
三、测试环境
egg-scripts NPM 主页:egg-scripts
env - server env, default to process.env.EGG_SERVER_ENV
env 指向的值便是 config.${that}.js 中的值,测试环境的部署只需要添加脚本:
"start-test": "egg-scripts start --env=test --daemon --title=egg-server-test",
"stop-test": "egg-scripts stop --env=test --title=egg-server-test",
四、生产环境
生产环境只需要修改 env 的值:
"start-prod": "egg-scripts start --env=prod --daemon --title=egg-server-prod",
"stop-prod": "egg-scripts stop --env=prod --title=egg-server-prod",
五、文件结构
└── config
├── config.default.js
├── config.local.js
├── config.prod.js
└── config.test.js
六、使用配置
以 Controller 层为例,配置文件会注册在上下文 ctx 中。
class MazeyController extends Controller {
async say() {
const { ctx } = this;
console.log(ctx.app.config.attr);
ctx.body = 'hi, Mazey.';
}
}