https://panjiachen.github.io/vue-element-admin-site/zh/guide/essentials/deploy.html#%E6%9E%84%E5%BB%BA
console.log(process.env.VUE_APP_***) // 环境变量
console.log(process.env.NODE_ENV) //环境

1.在vue-cli3的项目中,  process.env.NODE_ENV 为当前环境  

npm run serve时    process.env.NODE_ENV 为 ‘development’;                      //开发环境

      npm run build 时    process.env.NODE_ENV 为 ‘production’;                         //生产环境

      此时只要根据process.env.NODE_ENV设置不同请求url就可以很简单的区分出 本地和线上环境。

      但是在线上环境又分为 测试环境,预生产环境,生产环境,这时候就要在线上环境的条件下添加环境变量来区分

2. 在项目根目录添加文件“.env.test”和“.env.pre

所有测试环境或者正式环境变量的配置都在 .env.development等 .env.xxxx文件中

注意!!!

环境变量必须以 VUE_APP_ 为开头。如:VUE_APP_APIVUE_APP_TITLE

你在代码中可以通过如下方式获取环境变量:

console.log(process.env.VUE_APP_xxxx)

两个文件中

.env.test:

NODE_ENV = 'production'
VUE_APP_WISEYEAPP_ENV_NAME = 'test' //环境变量

.env.pre

NODE_ENV = 'production'
VUE_APP_WISEYEAPP_ENV_NAME = 'pre' //环境变量
VUE_APP_OUTPUT_DIR = 'preDist'

3. package.json中打包命令:

{
···
"scripts": {
"serve": "vue-cli-service serve", //本地运行,会把process.env.NODE_ENV设置为‘development’
"build:test": "vue-cli-service build --mode test", // 注意,这里 “--mode 名字“ 要和步骤2中文件名 “.env.名字” 名字保持一致
"build:pre": "vue-cli-service build --mode pre"
},
"dependencies": {
···
},
···
}

4. 然后 api/config.js里

const BaseConfig = {
dev: {
BaseUrl: 'http://191.168.1.1/dev'
},
test: {
BaseUrl: 'http://191.168.1.1/test'
},
pre: {
BaseUrl: 'http://191.168.1.1/pre'
}
} let BaseUrlConfig = BaseConfig.dev
if (process.env.NODE_ENV === 'production' && process.env.VUE_APP_WISEYEAPP_ENV_NAME === 'test') { //区分环境和环境变量
// 测试环境
BaseUrlConfig = BaseConfig.test
} else if (process.env.NODE_ENV === 'production' && process.env.VUE_APP_WISEYEAPP_ENV_NAME === 'pre') {
    // 预生产环境 
BaseUrlConfig = BaseConfig.pre
}
export default BaseUrlConfig

5. 项目里 接口.js 文件里引用就好了 

import request from '@/utils/request'
import BaseUrlConfig from '@/api/config'

或者 (在请求中引入设定的url,用的是axios,所以在axios的配置文件中引入并使用)

import axios from 'axios'
import baseUrl from './constans' axios.defaults.withCredentials = true;
axios.defaults.baseURL = baseUrl; ····

6. 分析构建文件体积

npm run preview -- --report

执行命令后本地会生成一个dist包,传统的打包dist里面只有一个index.html,而这个会多一个report.html,打开这个HTML文件

运行之后你就可以在 http://localhost:****/report.html 页面看到具体的体积分布

vue-cli3构建和发布 实现分环境打包步骤(给不同的环境配置相对应的打包命令)的更多相关文章

  1. [转]MonkeyRunner在Windows下的Eclipse开发环境搭建步骤(兼解决网上Jython配置出错的问题)

    MonkeyRunner在Windows下的Eclipse开发环境搭建步骤(兼解决网上Jython配置出错的问题)   网上有一篇shangdong_chu网友写的文章介绍如何在Eclipse上配置M ...

  2. vue实现分环境打包步骤(给不同的环境配置相对应的打包命令)

    在新建好的项目中,一般执行npm run build就是打包了,但此时只能打包到一个环境,不同环境需要配置不同的地址,可以手动更改接口的地址,也可以自行配置命令而不需要每次打包进行地址切换,步骤如下: ...

  3. Vue 项目构建完成 ----发布项目

    发布项目 cmd  命令行 npm run build      执行打包文件 完成后就会有  3 个文件夹    分别是: 文件夹 :build     config      dist    in ...

  4. vue-cli3实现分环境打包步骤(给不同的环境配置相对应的打包命令)

    在vue-cli3的项目中,npm run serve时会把process.env.NODE_ENV设置为‘development’:npm run build 时会把process.env.NODE ...

  5. vue项目构建实战基础知识:SPA理解/RESTful接口介绍/static目录配置/axios封装/打包时map文件去除

    一.SPA 不是指水疗.是 single page web application 的缩写.中文翻译为 单页应用程序 或 单页Web应用,更多解释请自行搜索. 所有的前端人员都应该明白我们的页面的 u ...

  6. 在 vue cli3 的项目中配置双服务,模拟 ajax 分页请求

    最近安装了下vue cli3版本,与 cli 2 相比,文件少了,以前配置方法也不管用了.demo 中的大量的数据,需要做成 ajax 请求的方式来展示数据,因此,需要启动两个服务,一个用作前端请求, ...

  7. Hadoop分布环境搭建步骤,及自带MapReduce单词计数程序实现

    Hadoop分布环境搭建步骤: 1.软硬件环境 CentOS 7.2 64 位 JDK- 1.8 Hadoo p- 2.7.4 2.安装SSH sudo yum install openssh-cli ...

  8. Github配合Jenkins,实现vue等前端项目的自动构建与发布

    本篇文章前端项目以vue为例(其实前端工程化项目的操作方法都相同),部署在Linux系统上(centos). 之前做前端项目的部署,一直都是手动运行打包命令,打包完.再使用FTP.Xshell等这类的 ...

  9. vue cli3.0 封装组件全局引入js文件并发布到npm

    首先用 vue create创建一个项目 当前的项目目录是这样的: 首先需要创建一个 packages 目录,用来存放组件 然后将 src 目录改为 examples 用作示例 二.修改配置 启动项目 ...

  10. Vue CLI3和Vue CLI2环境搭建

    关于 Vue CLI 旧版本的安装以及创建项目 1.搭建 vue 的开发环境 ,安装 vue 的脚手架工具 官方命令行工具 npm install --global vue-cli / cnpm in ...

随机推荐

  1. 什么是DI

    属性的依赖注入,spring在通过IOC创建对象的时候,如果对象还有属性,就一并给赋值进去DI是在IOC的基础上进行对象的属性注入

  2. java.Text.ParseException:Unparseable date:"undefined 00:00:00"

    request.getParameter() 获取的日期要toString一下再parse,否则就会报这个异常

  3. docker中的gitlab数据备份、迁移和升级

    前期准备 数据备份 记录gitlab运行命令: docker run -itd --name gitlab \ --hostname gitlab.suniot.cn \ -p 443:443 -p ...

  4. [复现]2021DASCTF实战精英夏令营暨DASCTF July X CBCTF-PWN

    EasyHeap 想可执行的地方写入orw的shellcode,利用tcachebin的df进行劫持malloc_hook 然后调用add来触发. from pwn import * context. ...

  5. Postgresql 或GreenPlum 查询结果部分字段转json格式并保留字段名(row_to_json)

    -- 一些搜索结果给出 部分字段转json保留原字段的方式是用子查询select row_to_json(t) from ( select id, text from words ) t 但是如果子查 ...

  6. element表格数据v-for替换期望文字

    后端返回等级编码 "1","2"....并给你一个字典obj[ {dicCode: "4", dictFlag: "riskLev ...

  7. Charles抓包数据导入postman

    Charles抓包数据导入postman 1.先抓取到对应的请求,右键,再点击Copy cURL Request,操作如下图所示:                                   ...

  8. python abseil库(app, flags, logging)总结

    absl (Abseil PythonCommon Libraries)(https://abseil.io/docs/python/)是用于构建Python应用程序的Python库代码集合,它包括三 ...

  9. 关于IDEA发出基于APR的本地库加载失败错误的解决------->求解决!

    问题描述 在没有使用Maven项目启动该Project时,Tomcat可以正常使用,但在这里会显示这样的错误: 这个错误,已经查了两天了,相关文件以及解决方法已经翻烂了,还没有解决,放出来集思广益一下 ...

  10. 2019徐州网络赛 M Longest subsequence 序列自动机

    题目链接https://nanti.jisuanke.com/t/41395 题意:给两个字符串,s和t,在s中求字典序严格大于t的最长子序列. 思路:分类讨论即可.先建个s的序列自动机. 1 如果有 ...