转载:https://eggjs.org/zh-cn/basics/env.html#自定义环境

运行环境

一个 Web 应用本身应该是无状态的,并拥有根据运行环境设置自身的能力。

指定运行环境

框架有两种方式指定运行环境:

  1. 通过 config/env 文件指定,该文件的内容就是运行环境,如 prod。一般通过构建工具来生成这个文件。
// config/env
prod
  1. 通过 EGG_SERVER_ENV 环境变量指定运行环境更加方便,比如在生产环境启动应用:
EGG_SERVER_ENV=prod npm start

应用内获取运行环境

框架提供了变量 app.config.env 来表示应用当前的运行环境。

运行环境相关配置

不同的运行环境会对应不同的配置,具体请阅读 Config 配置

与 NODE_ENV 的区别

很多 Node.js 应用会使用 NODE_ENV 来区分运行环境,但 EGG_SERVER_ENV 区分得更加精细。一般的项目开发流程包括本地开发环境、测试环境、生产环境等,除了本地开发环境和测试环境外,其他环境可统称为服务器环境,服务器环境的 NODE_ENV 应该为 production。而且 npm 也会使用这个变量,在应用部署的时候一般不会安装 devDependencies,所以这个值也应该为 production

框架默认支持的运行环境及映射关系(如果未指定 EGG_SERVER_ENV 会根据 NODE_ENV 来匹配)

NODE_ENV EGG_SERVER_ENV 说明
  local 本地开发环境
test unittest 单元测试
production prod 生产环境

例如,当 NODE_ENV 为 production 而 EGG_SERVER_ENV 未指定时,框架会将 EGG_SERVER_ENV 设置成 prod

自定义环境

常规开发流程可能不仅仅只有以上几种环境,Egg 支持自定义环境来适应自己的开发流程。

比如,要为开发流程增加集成测试环境 SIT。将 EGG_SERVER_ENV 设置成 sit(并建议设置 NODE_ENV = production),启动时会加载 config/config.sit.js,运行环境变量 app.config.env 会被设置成 sit

与 Koa 的区别

在 Koa 中我们通过 app.env 来进行环境判断,app.env 默认的值是 process.env.NODE_ENV。但是在 Egg(和基于 Egg 的框架)中,配置统一都放置在 app.config 上,所以我们需要通过 app.config.env 来区分环境,app.env 不再使用。

https://eggjs.org/zh-cn/basics/env.html#%E8%87%AA%E5%AE%9A%E4%B9%89%E7%8E%AF%E5%A2%83的更多相关文章

  1. canvas处理压缩照片并回显:https://cengjingdeshuige.oss-cn-beijing.aliyuncs.com/20180512/cannovs%E5%AD%A6%E4%B9%A0.html

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. 对怎样充分利用安卓官方开发网站的一个简单性介绍介绍-https://developer.android.google.cn/docs/

    一,谷歌的安卓官方网站-https://developer.android.google.cn/docs/ ,在网站里面可以查询开发文档,开发指导,设计原则,制作app的例子等等,无论对于新手还是老手 ...

  3. https://finance.sina.com.cn/realstock/company/sh600522/nc.shtml

    https://finance.sina.com.cn/realstock/company/sh600522/nc.shtml http://hq.sinajs.cn/list=sh601006

  4. https://jzh.12333sh.gov.cn/jzh/

    https://jzh.12333sh.gov.cn/jzh/ https://superuser.com/questions/171917/force-a-program-to-run-withou ...

  5. gitlab 地址https://www.gitlab.com.cn/installation/#centos-7

    https://www.gitlab.com.cn/installation/#centos-7 1.安装并配置必要的依赖关系 在CentOS 7(和RedHat / Oracle / Scienti ...

  6. https://itunes.apple.com/cn/app/apache-overkill/id410553807?mt=8uo%3D6

    https://itunes.apple.com/cn/app/apache-overkill/id410553807?mt=8uo%3D6 http://eplusgames.net/games/s ...

  7. https://lug.ustc.edu.cn/wiki/user/boj/linkers-and-loaders

    https://lug.ustc.edu.cn/wiki/user/boj/linkers-and-loaders   程序员的自我修养——链接.装载与库

  8. 【读书笔记】https://source.android.google.cn/devices/bootloader

    https://source.android.google.cn/devices/bootloader 本文主要记录aosp官网关于bootloader的相关资料 Bootloader A bootl ...

  9. 把Ubuntu系统自带的源修改为国内的源,中科大源链接:https://mirrors.ustc.edu.cn/repogen/

    https://mirrors.ustc.edu.cn/repogen/ Tips: 可通过 URL 的形式直接下载配置. 例如: https://mirrors.ustc.edu.cn/repoge ...

  10. 在ubuntu的docker中apt-get update更新失败:GPG error: https://developer.download.nvidia.cn/compute/cuda/repos/ubuntu180,,,,,

    在ubuntu的docker中执行apt-get update时报错 : W: GPG error: https://developer.download.nvidia.cn/compute/cuda ...

随机推荐

  1. ptmalloc、tcmalloc与jemalloc对比分析

    背景介绍 在开发微信看一看期间,为了进行耗时优化,基础库这层按照惯例使用tcmalloc替代glibc标配的ptmalloc做优化,CPU消耗和耗时确实有所降低.但在晚上高峰时期,在CPU刚刚超过50 ...

  2. OpenAI官方开源多智能体框架「Swarm」,并不是我想要的多智能体框架

    今天早上,OpenAI实施团队的 @shyamal在Github上开源了Swarm这个OpenAI官方的多智能体框架.不得不说,OpenAI官方下场,获得的社区影响就是不一样,在微信群.朋友圈里已经出 ...

  3. AI五子棋_10 更多的算法探索

    AI五子棋 第十步 恭喜你到达第十步! 你已经完成了一个AI的设计,下面就需要发动你的智慧让你的机器大脑变得更聪明了! 我们的征途是星辰大海! 更多资料可以参考这个列表 https://gomocup ...

  4. 挑战Java面试题复习第1天,坚持就是胜利

    面向对象和面向过程的区别面向过程: 步骤分析:将问题分解为一系列步骤.函数实现:用函数逐步实现这些步骤.调用执行:在需要时调用这些函数.高性能:适合对性能要求高的场合,如单片机和嵌入式开发.面向对象: ...

  5. springBoot项目启动卡在Root WebApplicationContext: initialization completed... (非DEBUG断点问题)

    通过源码启动排查发现,初始化连接池时创建了200次,通过配置文件中将initialSize值改为10,启动时间从1分钟变为了3秒.

  6. UniswapV2Pair细节

    UniswapV2Pair合约是Uniswap V2协议中的核心部分,用于管理流动性池.代币交换.流动性代币的铸造和销毁等操作.以下是对UniswapV2Pair合约中所有主要方法及其参数的详细讲解. ...

  7. 如何使用ConsulManager来优雅的管理主机监控与站点监控

    概述 ConsulManager是一个使用Flask+Vue开发的Consul WEB管理工具,比官方自带的WEB UI实现了更多的功能. 可以方便的对Consul Services进行增删改查,支持 ...

  8. 2.12 Linux两种远程管理工具(PuTTY和SecureCRT)

    通过<Linux远程管理协议>一节可以知道,Linux远程管理服务器多基于 SSH 协议.本节给大家介绍 2 种常见的基于 SSH 协议的远程管理工具,分别是 PuTTY 和 Secure ...

  9. LVM 使用与扩容总结

    转载请注明出处: LVM(Logical Volume Manager,逻辑卷管理器)是一个用于Linux系统的磁盘管理工具.它提供了一种更加灵活的存储管理机制,可以方便地进行磁盘的扩容.缩减.快照以 ...

  10. Java大作业:AI千恋万花(调用api实现)老师看完说蒸鹅心

    写完py版本的ai老婆后,老师改了要求,大作业只能Java写,而且必须使用MySQL的工具,只好重写了一份 前情提要:https://www.cnblogs.com/h4o3/p/18523151 由 ...