dev/uat/prod环境/nodejs 切换环境/cross-env

一、什么是 开发环境、测试环境、生产环境、UAT环境、仿真环境

  • 开发环境( DEV / development ):

开发环境是程序猿们专门用于开发的服务器,配置可以比较随意, 为了开发调试方便,一般打开全部错误报告。

  • 测试环境( UAT / User Acceptance Test ):

一般是克隆一份生产环境的配置,一个程序在测试环境工作不正常,那么肯定不能把它发布到生产机上。

  • 生产环境( PROD / production ):

是指正式提供对外服务的,一般会关掉错误报告,打开错误日志。可以理解为包含所有的功能的环境,任何项目所使用的环境都以这个为基础,然后根据客户的个性化需求来做调整或者修改。

三个环境也可以说是系统开发的三个阶段:开发->测试->上线,其中生产环境也就是通常说的真实环境。

UAT环境:UAT,(User Acceptance Test),用户接受度测试 即验收测试,所以UAT环境主要是用来作为客户体验的环境。

仿真环境:顾名思义是和真正使用的环境一样的环境(即已经出售给客户的系统所在环境,也成为商用环境),所有的配置,页面展示等都应该和商家正在使用的一样,差别只在环境的性能方面。

二、pm2 和 node 按环境启动

{
    "scripts": {
        "node dev": "NODE_ENV=development node ./bin/www",
        "node prod": "NODE_ENV=production node ./bin/www",
        "node uat": "NODE_ENV=uat node ./bin/www"
    }
}
{
    "scripts": {
        "pm2 dev": "NODE_ENV=development pm2 start ./bin/www",
        "pm2 prod": "NODE_ENV=production pm2 start ./bin/www",
        "pm2 uat": "NODE_ENV=uat pm2 start ./bin/www"
    }
}

代码中可获取当前环境:

const env = process.env.NODE_ENV|'development'
const isDev = env === 'development'
const isProd = env === 'production'

三、window / mac 环境兼容 : cross-env

上面的代码在window / mac 环境中并不兼容, windows不支持NODE_ENV=development的这样的设置方式,所以需要引入cross-env库实现兼容:

cross-env就是运行跨平台设置和使用环境变量的脚本。

安装

npm install cross-env --save-dev
//或
npm install -s cross-env
//或
yarn add cross-env --dev

配置

{
    "scripts": {
        "pm2 dev": "cross-env NODE_ENV=development pm2 start ./bin/www",
        "pm2 prod": "cross-env NODE_ENV=production pm2 start ./bin/www",
        "pm2 uat": "cross-env NODE_ENV=uat pm2 start ./bin/www",
        "node dev": "cross-env NODE_ENV=development node ./bin/www",
        "node prod": "cross-env NODE_ENV=production node ./bin/www",
        "node uat": "cross-env NODE_ENV=uat node ./bin/www"
    }
}

四、dotenv : 支持.env

可将环境变量从.env文件加载到process.env中。

dotenv 文档

安装:

# with npm
npm install dotenv

# or with Yarn
yarn add dotenv

启动文件添加:

require("dotenv").config();

定义变量:

NODE_ENV=default
CUSTOM_NAME=我是默认

使用:

let env = process.env.NODE_ENV || 'development';

五、dotenv-safe : 支持.env

dotenv-safe是dotenv模块的扩展,从.env(不提交git)加载本地环境变量,并确保它们都存在。通过配置.env.example(提交git)文件来制定哪些变量必须要配置。

dotenv-safe 文档

npm install --save dotenv-safe
# 或
yarn add dotenv-safe
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值