Egg: 环境切换到prod ,对应的config没有被覆盖

Created on 11 Sep 2017  ·  7Comments  ·  Source: eggjs/egg

直接上代码:

//config/config.default.js
module.exports = {
  keys: 'default keys',
  url : 'ccc',
};

//config/config.prod.js
module.exports = {
  keys: 'prod keys',
  url : 'ddd',
};

//app/controller/home.js
exports.index = function* index(ctx) {
  ctx.body = {
    env: ctx.app.config.env,
    config: ctx.app.config.keys,
    url: ctx.app.config.url,
  };
};

//页面返回
{"env":"prod ","config":"default keys","url":"ccc"}

//执行脚本
  "scripts": {
    "start": "node index.js",
    "dev": "egg-bin dev",
    "prd": "set EGG_SERVER_ENV=prod && npm start",
    "test": "egg-bin test",
    "autod": "autod"
  }

>npm run prd

现在比较奇怪的是 env 已经是 prod ,为什么 prod 配置文件的内容没有被覆盖掉。

not follow template

Most helpful comment

无法复现? 你运行我原来的那个demo的话,env是变化了,但是其他字段还是按照原来的default的字段。没有用prod的配置去覆盖。
使用一下语句就可以了, 原来的demo不清晰,这个还要自己摸索,我还以为直接是 EGG_SERVER_ENV=prod npm start

 "prd": "cross-env EGG_SERVER_ENV=prod && egg-scripts start",

All 7 comments

请按照issue模板提供信息。

从代码上看不出啥来,请提供一个最小可复现的代码库。

从你的代码来上看 node index.js 这个比较老的用法了,新的方式是 egg-scripts start,可以看下官方文档,部署那一章节。

另外,不建议自己配置 npm scripts,请 用通过 egg-init --type=simple 生成的 package.json

其实运行的就是 custom-env demo, 这个例子实在是太差了,没有达到demo的效果。。。

可以看看我刚刚提交的这个代码:[email protected]:ivwitxsc/koa2-eggjs.git

那个 demo 有点旧了,egg-scripts 上个月才出来的,欢迎 PR。

我本地跑了下,无法复现。

"prd": "set EGG_SERVER_ENV=prod && npm start"

我怀疑是这条指令的问题,环境变量是不是没传到后面去。你换为 https://www.npmjs.com/package/cross-env 看看

无法复现? 你运行我原来的那个demo的话,env是变化了,但是其他字段还是按照原来的default的字段。没有用prod的配置去覆盖。
使用一下语句就可以了, 原来的demo不清晰,这个还要自己摸索,我还以为直接是 EGG_SERVER_ENV=prod npm start

 "prd": "cross-env EGG_SERVER_ENV=prod && egg-scripts start",

在 linux / mac 下是 EGG_SERVER_ENV=prod npm start 但你给的 demo 是 set EGG_SERVER_ENV=prod && npm start,我还以为你是 win 环境而改的。

另外,用 egg-scripts start 的话就不需要手动设置 env 了。

哈哈哈 谢谢你们的耐心解答,现在这里是弄懂了的 !

Was this page helpful?
0 / 5 - 0 ratings

Related issues

Ailein picture Ailein  ·  3Comments

Webjiacheng picture Webjiacheng  ·  3Comments

zhaofinger picture zhaofinger  ·  3Comments

whlsxl picture whlsxl  ·  3Comments

skyyangpeng picture skyyangpeng  ·  3Comments