zoukankan      html  css  js  c++  java
  • vue.config.js配置本地,测试,开发环境变量

    vue.config.js配置本地,测试,开发环境变量

    背景

    当我们使用vue-cli3.0搭建项目时,相比于之前的vue-cli2.0少了buildconfig文件夹,所以vue-cli3.0提供了一个可选的配置文件----vue.config.js来对项目进行webpack的配置。最典型的一个配置就是接口配置,如:

    // vue.config.js
    module.exports = {
      // 是否生成map文件
      productionSourceMap: process.env.NODE_ENV === 'production' ? false : true, 
      // 接口api配置
      devServer: {
        proxy: {
          '/soc': {
            target: 'http://10.8.228.226',
            changeOrigin: true,
            onProxyReq (proxyReq, req, res) {
              proxyReq.setHeader('Cookie', 'ticket=ST-2237-ntnV2Q8073vcd4pHq3zfPoiJjlMbf5e3914-927d-410c-abb1-1f758090c523;SESSION=23690155-8703-4f1c-b964-faa9e206bf21;')
            }
          }
        }
      },
      // less样式配置
      css: {
        loaderOptions: {
          css: {},
          less: {
            javascriptEnabled: true
          }
        }
      }
    }

    而在实际项目的开发中,我们一般会经历几个阶段或者说是几个环境,比如:开发环境,测试环境,线上环境。每个环境下项目代码的要求也不完全一样,例如测试环境和线上环境当用户尚未登录的时候会自动跳转到登录页,但是测试环境和线上环境的登录页是不一样的,那么我们如何能够在这三个或者更多的环境下切换来实现项目展现不同的效果呢?特别是vue-cli3.0已经没有了buildconfig这样的文件夹。

    环境配置

    本地环境

    vue.config.js平级目录下新建.env.development

    // .env.development
    NODE_ENV = 'development' // 这里可以不写,默认就是development
    VUE_APP_NOTICE = 'dev'

    测试环境

    vue.config.js平级目录下新建.env.test

    // .env.test
    NODE_ENV = 'test'
    VUE_APP_NOTICE = 'test'

    线上环境

    vue.config.js平级目录下新建.env.production

    // .env.production
    NODE_ENV = 'production'
    VUE_APP_NOTICE = 'pro'

    package.json配置

    // package.json
    "scripts": {
      "serve": "vue-cli-service serve",
      "build": "vue-cli-service build",
      "build:test": "vue-cli-service build --mode test"
    },

    运行

    此时我们就配置好了开发环境,测试环境和线上环境。我们可以在项目中通过process.env.[name]来访问我们定义的变量,如

    // main.js
    console.log(process.env.NODE_ENV)
    console.log(process.env.VUE_APP_NOTICE)
    
    • 1
    • 2
    • 3

    开发环境

    当我们本地运行

    npm run serve
    

    时,输出的就是development,因为vue-cli-service serve命令默认设置的环境就是development

    测试环境

    当我们运行

    npm run build:test

    时,webpack会读取.env.test文件下的配置(如果没有找到对应的配置文件,会默认使用开发环境的配置)

    线上环境

    当我们运行

    npm run build

    时,vue-cli-service build会使用默认环境 production

    此时我们就可以通过process.env.NODE_ENVprocess.env.VUE_APP_NOTICE在项目中对不同环境进行不同操作。

    注意

    当我们配置环境变量时候,除了process.env已有的baseUrlNODE_ENV可以更改值,对于我们想要自定义添加的环境变量必须使用VUE_APP开头。

    附录

    权威说明可以参考Vue CLI给出的文档

  • 相关阅读:
    JAVA-初步认识-第十三章-验证静态同步函数的锁
    JAVA-初步认识-第十三章-多线程(验证同步函数的锁)
    JAVA-初步认识-第十二章-面向对象(包与包之间的访问)
    JAVA-初步认识-第十二章-面向对象(包的概述)
    JAVA-初步认识-第十三章-同步函数
    Fatal error: Call to undefined function imagettftext()解决办法
    ecstore菜鸟电子面单对接摘要
    linux crontab 实现每秒执行(转)
    ios9 URL Schemes列为白名单,才可正常检查其他应用是否安装
    主机宝等主机面板不能跨站访问文件,不能访问父路径文件问题
  • 原文地址:https://www.cnblogs.com/xm0328/p/13791561.html
Copyright © 2011-2022 走看看