这是一期主要分享vue-cli4.0配置

新建一个项目,最令人为难的是配置环境。拿vue来说,创建项目很简单,跟着文档走即可,但是要知道配置本地,测试,生产环境,以及反向代理等等,如果对于一个对vue构建不是特别了解,或者对webpack不是特别了解的人来说,真是很为难。

创建项目不再赘述,直接看如何配置环境。

配置反向代理

反向代理其实就是在本地为了解决跨域问题,将本地启动的比如localhost:8080代理成测试环境,发送给后端就不会出现跨域的问题。

vue-cli2.0以及以前,都是在创建项目的时候,会自动创建一个文件夹build,里面有各个环境配置的文件。vue-cli3.0及之后的版本,省去了这个文件夹,让这个项目结构更加清晰。

我们需要配置时,需要手动在最外层,即跟public文件夹同一级,创建vue.config.js文件夹,用来放所有配置项。

我所配置的反向代理在devServer里配置。

module.exports={
assetsDir:'static',
publicPath:'./',
devServer: {
host: 'localhost',
port: 8080,
proxy: {
'/mall': {
target: process.env.VUE_APP_BASE_URL_MALL,
changeOrigin: true,
ws: true,
pathRewrite: {
'^/mall': ''
}
},
},
},
}

如上的代码将/mall代理成target里面的环境(target环境,下面会做详细描述),需要注意,反向代理只是针对本地,测试和正式环境不需要代理,在做发请求封装的时候需注意。

配置环境

看下package.json中的scripts项,有几个环境,可以直接npm run对应的环境即可。

如果想配置其他名称或者其他的环境,可以在vue.config.js同一级添加

开发环境env.development

测试环境env.stage

正式环境env.production

在对应的环境文件里,配置如下

NODE_ENV=stage
VUE_APP_BASE_URL_MALL='http://test.cn'

其中NODE_ENV配置的是环境,可以在后期根据环境进行区分本地/测试/正式环境

VUE_APP_是定义相对应的环境变量,可以在反向代理和封装请求的时候使用。

以下是我对发请求进行的封装

import axios from 'axios'

export default function http({url,method='GET',data=null}) {
return new Promise((resolve, reject) => {
let wholeUrl=''
// development:本地;stage:测试;production:正式
if(process.env.NODE_ENV=='development'){
wholeUrl=`/mall${url}`
}else {
wholeUrl=`${process.env.VUE_APP_BASE_URL_MALL}${url}`
}
axios({url:wholeUrl,method,data}).then(res=>{
resolve(res)
}).catch(err=>{
reject(err)
})
});
}

在以后不管是发正式还是发测试,均不用手动修改环境,很便利。

如何配置vue-cli4.0的更多相关文章

  1. vue cli4.0 配置环境变量

    温馨提示:本文只适用于vue-cli 3.0 及以上的版本哦~ ------------------正文开始------------------ 开发项目时,经常会需要在不同环境中切换.那么我们如何配 ...

  2. Vue CLI4.0版本正式发布了!一起来看看有哪些新的变化吧

    Vue CLI4.0版本正式发布 这个主要的版本更新主要关注底层工具的必要版本更新.更好的默认设置和其他长期维护所需的微调. 我们希望为大多数用户提供平稳的迁移体验. Vue CLI v4提供了对Ni ...

  3. Vue cli4.0 代理配置

    proxy: { '/service': { target: 'http://192.168.40.243:3000/', //对应自己的接口 changeOrigin: true, ws: true ...

  4. vue cli4.0 快速搭建项目详解

    搭建项目之前,请确认好你自己已经安装过node, npm, vue cli.没安装的可以参考下面的链接安装. 如何安装node? 安装好node默认已经安装好npm了,所以不用单独安装了. 如何安装v ...

  5. vue 2.0 及 vue 3.0 rem配置

    vue 2.0 配置 rem 首先先安装postcss-px2rem   (百度可以) https://www.jianshu.com/p/e6476bbc2131 npm install postc ...

  6. 【Alpaca】.Net版开源配置中心 - 技术选型 Vue 3.0

    是否可以用 Vue 3.0 现有的Vue 2.* 不推荐,坐等Vue 3.0出迁移工具吧,手动改的话工作量还是不小的 新项目 考虑下团队内对Vue + TS + VS Code的熟练程度.过程中你会遇 ...

  7. 新手入门指导:Vue 2.0 的建议学习顺序

    起步 1. 扎实的 JavaScript / HTML / CSS 基本功.这是前置条件. 2. 通读官方教程 (guide) 的基础篇.不要用任何构建工具,就只用最简单的 <script> ...

  8. vue 2.0 无法编译ES6语法

    # vue2.0 webpack 无法编译 ES6 语法 之前在使用 vue 1.x 时用 vue-loader@8.0.0 版本可以正常打包vue的代码,包括ES6语法也能正常转为ES5语法,但是当 ...

  9. vue cli3.0 结合echarts3.0和地图的使用方法

    echarts 提供了直观,交互丰富,可高度个性化定制的数据可视化图表.而vue更合适操纵数据. 最近一直忙着搬家,就没有更新博客,今天抽出空来写一篇关于vue和echarts的博客.下面是结合地图的 ...

  10. 在webpack中配置vue.js

    在webpack中配置vue.js 这里有两种在webpack中配置vue.js的方法,如下: 1.在main.js中引入vue的包: index.html: <!DOCTYPE html> ...

随机推荐

  1. 【LeetCode】Math

    [263] Ugly Number [Easy] 一个数的质因子只有2,3,5就叫丑数,写个函数判断丑数. //Author: Wanying //注意 0 和 1 的corner case, 你居然 ...

  2. centos7-关闭 rpcbind 服务

    1.关闭 rpcbind 服务 sudo systemctl disable rpcbind 2.关闭开机自启动 sudo  systemctl disable rpcbind 3.立即执行关闭 sy ...

  3. sql 合并查询结果

    在使用js报表工具的时候,常常需要提供json数据进行显示, 在sql查询的时候就需要构造合适的查询结果出来; 就用到了合并两个没有关联关系的表数据, SELECT SUM(a1.amount) AS ...

  4. ueditor不能上传mp4格式的视频--解决方案

    1.ueditor.all.js 去掉所有的 type="application/x-shockwave-flash" 2.ueditor.all.min.js 去掉所有的 typ ...

  5. Linux下安装PHP的curl扩展

    先安装依赖包: yum install curl curl-devel 找到PHP的安装包,cd 进入安装包 cd php-5.6.25/ext/curl phpize 如果报找不到phpize就补全 ...

  6. stm32 hal库串口通信资料汇集

    串口的发送接收函数:HAL_UART_Transmit();串口轮询模式发送,使用超时管理机制.HAL_UART_Receive();串口轮询模式发送,使用超时管理机制.HAL_UART_Transm ...

  7. php 实现的功能

    1.php写日志函数 (如:前端请求日志记录) : https://www.cnblogs.com/lvchenfeng/p/6794822.html 2.php中(服务器)使用CURL实现GET和P ...

  8. 【前端技术】一篇文章搞掂:JS

    待补充 //以下等价 if(val) if(val!=null&&val!=undefined&&val!="") //以下等价 if(!val) ...

  9. Linux环境进程间通信----信号与管道

    一.信号: 信号主要用来通知进程异步事件的发生.可以使用“kill -l ”命令来显示系统中的信号.进程可以忽略大部分信号,但是有两个是不能忽略的: (1)SIGSTOP:这个信号将中断进程的执行. ...

  10. Socket通信1.0

    Socket通信1.0 服务器端: package page; import java.io.BufferedReader; import java.io.IOException; import ja ...