zoukankan      html  css  js  c++  java
  • 关于如何在部署环境修改process.env & 本地测试

    前言

    最近在搞一些监控的东西, 需要根据不同的环境上报到不同的地址,中间遇到了一些问题,在这里简单总结分享下。

    关于process.env

    假如你对process.env 相关的概念还不熟悉, 请移步:
    Node环境变量 process.env 的那些事儿 , 这篇文章总结的比较好。

    webpack 在构建的时候, 可以为process.env 赋值:

    
    
    // Do this as the first thing so that any code reading it knows the right env.
    process.env.BABEL_ENV = 'development';
    process.env.NODE_ENV = 'development';
    
    
    // Do this as the first thing so that any code reading it knows the right env.
    process.env.BABEL_ENV = 'production';
    process.env.NODE_ENV = 'production';
    
    
    process 对象是一个 global (全局变量),提供有关信息,控制当前 Node.js 进程。作为一个对象,它对于 Node.js 应用程序始终是可用的,故无需使用 require()。

    假如你需要根据不同的部署环境做一些区分, 比如:

    
    
    if (process.env.env === "test") {
      BASE_API_1 = 'xxx
    } else if (process.env.env === "uat") {
      BASE_API_1 = 'xxx
    } else if (process.env.env === "staging") {
      BASE_API_1 = 'xxx
    } else if (process.env.env === "live") {
      BASE_API_1 = 'xxx'
    } else {
      BASE_API_1 = 'xxx';
    }
    
    

    比如用的是jenkins, 构建的时候会自动给环境变量加一个env 属性, 也就是上面看到的env.env, 不同的环境会有不同的值, 比如 uat, staging, live;

    本地构建的时候, 是取不到这个值的, 因为没有这个环境。 但是你也可以手动来赋值, 比如给env.env 赋值为'test', 就可以在终端执行:

    
    env=test yarn start
    
    

    随便打印一下:

    
    
    console.log(process.env.env);
    
    

    这样就可以了 :)

    希望对大家有所启发, 谢谢。

    来源:https://segmentfault.com/a/1190000016574361

  • 相关阅读:
    图像按钮
    提交按钮
    文件上传域
    Python创建虚拟环境
    Typecho使用技巧
    面向对象
    Python语法入门
    Python 基础数据类型
    与用户交互
    MySQL5.7安装教程
  • 原文地址:https://www.cnblogs.com/lovellll/p/10173929.html
Copyright © 2011-2022 走看看