Vue前端 多环境配置 jenkens自动化打包构建配置

1,554 阅读2分钟

场景

从项目开发到生产一般会有三个环境,开发环境、测试环境、生产环境。不同环境对应API请求地址是不一样的,而vue-cli 默认只提供了 dev 和 production 两种环境,这显然不能满足我们需求;怎么办呢?如果使用人力每次发布不同环境时都去修改环境配置文件!这就脱离自动化打包了,而且浪费不必要人力物力还容易出错;

所以我们需要借助webpack 去帮助我们简化打包流程,从而进行不同环境API配置请求地址配置

首先打开Vue工程如下操作:

  • 创建env 全局默认配置文件

    .env.production 生成环境配置

    NODE_ENV=production                            // 环境变量 
    VUE_APP_CURRENTMODE='production'               //当前模式
    VUE_APP_PORT = 'https://www.baidu.com/API'     //API 接口地址配置
    outputDir='production'                         // 打包文件名
    

    .env.test 测试环境配置

    NODE_ENV='test'                                // 环境变量
    VUE_APP_CURRENTMODE='test'                     //当前模式
    VUE_APP_PORT='https://www.baidu.com/test/API'  //API 接口地址配置
    outputDir='test'                               // 打包文件名
    

    .env.dev 开发环境配置

    NODE_ENV='dev'                                // 环境变量 
    VUE_APP_CURRENTMODE='dev'                     //当前模式
    VUE_APP_PORT='https://www.baidu.com/dev/API'  //API 接口地址配置
    outputDir='dev'                               // 打包文件名 
    

    如图:

    image.png

    package.json 配置修改

    "scripts": {
        "serve": "vue-cli-service serve",
        "buildProd": "vue-cli-service  build  --mode production",
        "buildTest": "vue-cli-service build --mode test",
        "buildDev": "vue-cli-service build --mode dev"
      }
    

    新建API 请求地址文件

    config文件夹下创建index.js;

      ```js
      /**  接口地址 */   
      
      let httpUrl = '' 
    
      if (process.env.NODE_ENV.trim()==='production') {    //生产环境
          httpUrl = process.env.VUE_APP_PORT
      }else if(process.env.NODE_ENV.trim()==='test'){      //测试环境
          httpUrl =process.env.VUE_APP_PORT
      }else if(process.env.NODE_ENV.trim()==='dev'){       //开发环境
          httpUrl =process.env.VUE_APP_PORT
      }else{ 
          httpUrl ='http://47.115.173.66:8099'  // 本地开发环境访问地址
      }
      export default httpUrl
      ```
    

    通过process.env.VUE_APP_PORT获取到自定义的环境变量,获取对应环境的API地址

    vue.config.js 配置修改

    
        修改vue.config.js 文件里的outputDir
    
        outputDir: process.env.outputDir
    

    通过process.env.outputDir获取到自定义的环境变量,获取对应环境打包文件名

    这时已经完成项目对多环境配置。接下来对Jenkins项目购机进行配置,Jenkins安装和项目创建在这就不做多的描述,不会的同学可以百度下;

    **Jenkins项目构建时配置**

    
      //下载工作区npm包 
      npm install    
      //删除test目录下的所有文件,test目录即为当前`jenkins`工作区打包后的文件。
      rm -rf ./test 
      //执行打包命令,根据不同环境选择不同打包命令:如测试  npm run buildTest 开发 npm run buildProd
      npm run `buildTest` 
      //删除服务器上/www/web/test/ 目录下的所有文件/www/web/test/ 为服务器项目放置位置。 
      rm -rf /www/web/test/*
      //把当前构建工作区test目录里的文件 copy 到服务器/www/web/test 文件夹下。
      cp -rf ./test/* /www/web/test
    
    
    

到这里已经完成项目多环境配置及Jenkins 自动化打包构建配置;