zoukankan      html  css  js  c++  java
  • vue 2.0 脚手架项目中使用 cross-env 分环境打包

    需求背景:

      一般开发时,测试环境 与 正式环境 调用的接口域名是不同的,所以发布包时,需要配置环境变量来控制接口调用的域名

    一般实现方式:

      设置变量,通过判断语句,进入不同接口域名

    //常规的做法
    let mode="dev"; //可以设置:dev、test、prod
    let baseUrl="";
    
    if(mode=="dev"){
      baseUrl=="http://api.xmdev.com";
    }else if(mode=="test"){
      baseUrl=="http://api.xmtest.com";
    }else {
      baseUrl=="http://api.xmprod.com";
    }
    
    export {
      baseUrl
    }

    这样虽然能够实现需求,但是比较繁琐,每次需要更改 mode 值, 这个要介绍一个第三方库实现需求: cross-env

    cross-env官方的介绍是:

      跨平台环境脚本的设置,你可以通过一个简单的命令(设置环境变量)而不用担心设置或者使用环境变量的平台。

    使用步骤:

    1.安装依赖

    npm install --save-dev cross-env

    2.添加 dev.env.js 与 prod.env.js 文件

    module.exports = {
      NODE_ENV: '"development"'
    }

    module.exports = {
      NODE_ENV: '"production"'
    }

    3.修改build目录下webpack.prod.conf.js文件

    var env = config.build.env

    4.配置config 下 index.js文件

    env: require(`./${process.env.env_config === 'production'?'prod':'dev'}.env`),

    5.在 api 接口中,根据变量获取不同域名

     

    6.修改package.json文件中打包命令

        "build": "cross-env env_config=production node build/build.js",
        "build:dev": "cross-env env_config=developemnt node build/build.js",
        "build:prod": "cross-env env_config=production node build/build.js",

     至此就可以通过 npm run build:dev 和 npm run build:prod 来实现调用不同接口域名了

    分享一刻:

    计算机系统的设计原则

  • 相关阅读:
    MySQL 联合索引测试
    Redis的安装
    MySQL中int(5) 中的5代表什么意思?
    JS树结构转list结构
    SpringMVC数组参数
    立即执行函数(function(){})()与闭包
    女票口红礼物列表
    Idea中编辑后需要重启问题
    Myeclipse6.5迁移到IDEA
    Layui前端框架
  • 原文地址:https://www.cnblogs.com/huangaiya/p/13180706.html
Copyright © 2011-2022 走看看