Bootstrap

egg如何区分开发环境和生产环境

制作和查看环境

1. 设置好自己的环境

在这里插入图片描述

项目启动
package.json

"scripts": {
	"start":"egg-scripts start --env=prod --daemon --port 8081 --title=项目名称必须一致", // 正常当做生产环境来用
	"test":"egg-scripts start --env=test --daemon --port 8081 --title=项目名称必须一致"" // 测试环境
	"stop": "egg-scripts stop --title=项目名称必须一致",
	"dev":"egg-bin dev --port 8081", // 开发环境
	
}

2.与之配套

使用不同的启动方式调用不同的config文件(config.{env}.js)。
注:
egg-scripts start 默认以prod即生产模式启动,官方文档有提到。调用config.prod.js文件
设置env参数可切换环境。–env=test即为测试环境,调用config.test.js文件

也就是说 run 命令中的 --env=xxxx 那么所对应的,配置文件就使用 config.xxxx.js

依照官方的逻辑

依照官方的逻辑,我们在项目中如何差异化使用一些设置呢?

1. 设置差异化数据

我以 config.default.jsconfig.prod.jsconfig.test.js为例
例如:

// config.default.js 默认 开发环境
  config.test = {
    key: appInfo.name + "_这是秘密xxxxx",
    path: "/www/开发环境上传路劲", // 比如我配置一个测试、生产和开发环境中的上传路劲。
  };
// config.test.js  测试环境
  config.test = {
    key: appInfo.name + "_这是秘密xxxxx",
    path: "/www/测试环境上传路劲", // 比如我配置一个测试、生产和开发环境中的上传路劲。
  };
// config.prod.js  生产环境
  config.test = {
    key: appInfo.name + "_这是秘密xxxxx",
    path: "/www/生产环境上传路劲", // 比如我配置一个测试、生产和开发环境中的上传路劲。
  };

2.配置好了如何在项目使用呢?

只要在项目中,能用this的地方。

this.config.test['你定义好的数据key']

// 例如我获取路劲 path
console.log(this.config.test.path);

;