zoukankan      html  css  js  c++  java
  • cross-env 根据环境打包

    cross-env GitHub地址

    React 环境变量

    开发中请求后端接口时,会有一个公共的请求地址(服务器域名地址 === BASEURL)。
    通常情况下,开发环境、线上环境的 BASEURL 接口地址是不一样的(开发环境服务器,uat服务器,生产服务器),所以不同环境打包时就需要切换到不同环境的服务器地址。(手动修改可以,但是太麻烦,而且容易忘记)所以,正确的写法应该是,根据不同的环境变量来自动确定不同的 BASEURL。

    NODE_ENV 内置环境

    create-react-app 创建项目时,内置的环境变量有三个,JavaScript代码中可以直接通过 process.env.NODE_ENV 来读取,无需引入。

    三个环境变量依次对应三个运行命令:

    npm start 时, NODE_ENV 的值为 development

    npm run test 时, NODE_ENV 的值为 test

    npm run build 时, NODE_ENV 的值为 production

    如果你的环境只有 3 个,那内置环境足够,但是有时候我们需要的环境可能不止这几个。(尤其是,同一套应用给不同的用户去部署的时候,常见于外包项目)
    那就需要我们自己来配置不同的环境。此时可以用到 cross-env 它的设计是为了定义全平台兼容的环境变量命令,因为 Windows 在设置环境变量的命令会出现阻塞问题

    安装

    npm install --save-dev cross-env

    使用
    {
      "scripts": {
        "build": "umi build",
        "build:tom": "cross-env HOST=tom umi build",
        "build:jerry": "cross-env HOST=jerry umi build",
      },
    }
    
    

    然后在需要用到的地方(比如:defaultSetting.js)进行判断即可:

    let baseUrl = '';
    let HOST = process.env.HOST;
    if (HOST === 'tom') {
      baseUrl = '/www.tom.com/';
    } else if (HOST === 'jerry') {
      baseUrl = '/www.jerry.com/';
    } else {
      baseUrl = '/www.tomAndjerry.com/';
    }
    
    export default {
      baseUrl,
    };
    
    
    运行

    运行 npm run build:tom 会得到 baseUrl = '/www.tom.com/'

    运行 npm run build:jerry 会得到 baseUrl = '/www.jerry.com/'

    最后的 else 其实是防备的 npm run buildnpm start 等不会设置这个变量的情况。

  • 相关阅读:
    Codeforces Round 546 (Div. 2)
    Codeforces Round 545 (Div. 2)
    Codeforces Round 544(Div. 3)
    牛客小白月赛12
    Codeforces Round 261(Div. 2)
    Codeforces Round 260(Div. 2)
    Codeforces Round 259(Div. 2)
    Codeforces Round 258(Div. 2)
    Codeforces Round 257 (Div. 2)
    《A First Course in Probability》-chaper5-连续型随机变量-随机变量函数的分布
  • 原文地址:https://www.cnblogs.com/xguoz/p/13209831.html
Copyright © 2011-2022 走看看