vue-cli-service build 环境设置方式
作者:lambertLin 发布时间:2024-05-25 15:17:08
vue-cli-service build 环境设置
使用vue-cli3打包项目,通过配置不同的指令给项目设置不一样的配置。
npm run serve
时会把process.env.NODE_ENV设置为‘development’;npm run build
时会把process.env.NODE_ENV设置为‘production’;
此时只要根据process.env.NODE_ENV设置不同请求url就可以很简单的区分出本地和线上环境。
头疼的是打包时线上环境可能分多种,比如测试环境和生产环境等等。
在vue-cli2中打包时可以修改 “build” 和 “config”中的文件来区分不同的线上环境
而vue-cli3号称0配置,无法直接修改打包文件,那么怎么区分不同的线上环境分别传入不一样的配置呢?
官网给我们做了简单介绍(vue-cli-service-build),但只解释了现有几个指令所匹配的模式,对于上面的需求显然无法满足。
如下提供一种解决方案
首先在package.json文件内添加测试环境和生产环境的打包指令:
"build-test": "vue-cli-service build --mode alpha",
"build-prod": "vue-cli-service build --mode prod",
在项目根目录添加两个文件
.env.alpha
NODE_ENV = 'production'
VUE_APP_BASE_URL = 'http://test.linbenjian.work'
.env.prod
NODE_ENV = 'production'
VUE_APP_BASE_URL = 'http://www.linbenjian.work'
在项目中使用参数:
import axios from 'axios'
let baseurl = process.env.VUE_APP_BASE_URL || 'http://localhost:9001'
注:
—mode后面添加test、production 等预留参数无效
配置文件内,参数添加VUE_APP 可通过调试
vue-cli的vue-cli-service命令的默认环境
在运行或者打包Vue项目时,我们常用的命令是:npm run build,npm run serve等样式。其中build和serve是在vue项目的package.json中进行定义,是一个脚本。
例如:
{
"name": "test02",
"version": "0.1.0",
"private": true,
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"lint": "vue-cli-service lint"
},
在上面的脚本定义中,server、build等是可以按照自己的方式进行命名的,例如myserver、mybuild,对应的运行命令就是:
npm run mybuild
npm run myserve
上面的命令本质上是下面的命令,都可以在命令行方式下运行:
vue-cli-service serve
vue-cli-service build
运行截图如下:
下面讲一下vue-cli-service serve和vue-cli-service build的默认环境,因为曾经遇到出现一个问题:项目中有一个环境参数文件.env.development。在WebStorm中运行npm run serve,前后端是通的。
但是当运行npm run build打包部署到Apache Server中后,前后端是不通的。
检查后发现原因是上面两个命令默认的环境是不一样的,看下面两个运行截图就知道了:
第一个脚本默认对应的是development环境,第二个脚本默认对应的是production环境(没有对应的环境设置文件也不影响,有对应的环境设置文件就用文件里面设置的参数)。
如果不注意这点,就会出现部署后运行情况和没有部署运行情况不一致的情况,其背后的原因就是默认环境。
如何修改每个脚本对应的环境?非常简单,直接在package.json文件中修改。
将这个图与第二个图进行比较,环境参数已经发生改变。
环境设置文件的命名规范是:.env.xxx,XXX在上图中为development,一般有意义或者惯例的名字即可,右边–mode后面的参数名字需要与左边文件的XXX完全相同(可能有多个环境设置文件)。
某个脚本运行后,将会出现XXX的名字,例如上图的【 Building for development…】。
来源:https://blog.csdn.net/linbenjian/article/details/85261201
猜你喜欢
- 数字函数 ABS():求绝对值。 CEILING():舍入到最大整数。 FLOOR():舍入到最小整数。 ROUND():四舍五入 ROUN
- python的时间模块生成时间戳的方法是非常简单的,因为最近频繁用到了时间戳功能,这里简单总结了一下日常使用最为频繁的两个时间模块各自生成当
- 乱码问题破解压缩包时候会存在中文乱码问题!1:直接使用Everything搜索出要修改的库文件 zipfile.py ,并用notepad+
- 用Python编写关于计算图形面积的代码实现,供大家参考,具体内容如下#寒假打卡28天第7天import mathclass Round()
- 前言最近在功能性测试的过程中,需要在Python环境下用OpenCV读取网络摄像头的视频流,接着用目标检测器进行视屏帧的后续处理。在测试过程
- 路由关系映射的一个小问题URL中那个上尖号在正则中表示 以某某开头 $符号表示以某某结尾 这就限制了开头和结尾,也就固定了长度但是 admi
- 1 前言在工作中时常会有繁重的文案工作,接触了python 之后,就会觉得这个比较简单了,python 操作word 和 excel 是比较
- group_concat()函数的参数是可以直接使用order by排序的。666。。下面通过例子来说明,首先看下面的t1表。比如,我们要查
- rs.open sql,conn:如果sql是delete,update,insert则会返回一个关闭的记录集,在使用过程中不要来个rs.c
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&
- 作者:Lachlan Hunt概要网络是不断的进化的. 新的和有创意的网站每天都在出现, 从各方面都在冲击着HTML的边界. HTML 4来
- 这两天在用python的bottle框架开发后台管理系统,接口约定使用RESTful风格请求,前端使用jquery ajax与接口进行交互,
- 做为一个专职的页面重构者, 我们从事的工作简单的说就是“将设计稿转换成WEB页面”,这一过程可以很简单到直接把PSD从里导出成网页;也可复杂
- 简介mysql应该是我们在日常工作中使用到的一个非常普遍的数据库,虽然mysql现在是oracle公司的,但是它是开源的,市场占有率还是非常
- /* 功能: 通用分页存储过程 参数: @PK varchar(50), 主键,用来排序的单一字段,空的话,
- 直观感受几种常用排序算法,具体内容如下1 快速排序介绍:快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n
- 与没有数据库的网站相比,数据库的存取会降低你的系统性能。但是大多数情况下,网站和数据库有密不可分的关系,正是数据库给站点提供了大容量、多样性
- 索引和切片是NumPy中最重要最常用的操作。熟练使用NumPy切片操作是数据处理和机器学习的前提,所以一定要掌握好。文档:https://d
- <script language="javascript" type="text/javascript&
- 如下所示:nums = [1,8,2,23,7,-4,18,23,24,37,2]result = map(nums.index, heap