在vue项目中配置webpack
首先我们来看一下使用Vue-cli2与Vue-cli2之后的版本(这里以Vue-cli4版本为例)创建项目目录结构的不同:

Vue-cli2(左图)与Vue-cli4(右图)创建项目的目录
从上图可以看出Vue-cli2中有static文件夹,Vue-cli4是移除了static文件夹,但新增了public文件夹,并将index.html文件移动到了public中,这是其区别之一,另外Vue-cli2创建的项目其配置文件存放在build和config文件夹中,而Vue-cli4创建的项目没有这两个文件夹,那是不是真的没有了配置文件呢?当然不是,你想想如果没有配置文件了,那项目如何能够运行呢,其实只是将配置文件隐藏了而已。
那要如何查看配置文件呢?
配置文件隐藏在node_modules/@vue/cli-service中,打开这个文件夹,你就可以看到webpack.config.js配置文件了,但是并不推荐你在这里面进行webpack的相关配置,通常我们的做法是在项目的根目录下创建一个vue.config.js的配置文件,在这个文件中进行webpack的配置,因为在运行项目时,会先看是否有这个文件,如果有的话会将这个文件与隐藏的配置文件合并。
下面以配置文件夹别名和配置本地服务为例:
1.配置文件夹别名
为什么要给文件夹配置别名呢?有没有这个疑惑?首先当然是为了方便,因为在引用某个文件时需要给出其路径,但如果路径过长,就可能会出错了,而且还不优雅美观。直接贴代码:
1 module.exports = {
2 configureWebpack: {
3 // resolve是配置与路径相关的
4 resolve: {
5 extensions: ['.js', '.vue', '.json'], // 省略文件后缀名
6 // 配置别名
7 alias: {
8 'assets': '@/assets',
9 'common': '@/common',
10 'components': '@/components',
11 'network': '@/network',
12 'views': '@/views',
13 }
14 }
15 }
16 }
是不是有点疑惑@是个什么东西呢?@是代表的是src目录的别名,在隐藏的配置文件中有这个配置。
2.配置本地服务
1 module.exports = {
2 configureWebpack: {
3 // 配置本地服务器
4 devServer: {
5 compress: true, // 启用压缩,代码占用的空间少,在互联网传输快
6 port: 8080, // 设置打开的端口
7 host: '127.0.0.1', // host
8 hot: true, // 热启动
9 open: true, // 浏览器自动打开
10 // 服务器代理,实现跨域访问接口
11 proxy: {
12 '/api': {
13 target: '要访问目标的地址', //接口地址
14 ws: true, //是否开启websockets
15 changOrigin: true, //允许跨域
16 pathRewrite: {
17 '^/api': '' //路径重写
18 }
19 }
20 }
21 },
22 }
23 }
注意:在配置vue.config.js后需要重新编译,才会生效,否则就不会起作用哟。
在vue项目中配置webpack的更多相关文章
- Vue项目中使用webpack配置了别名,引入的时候报错
chainWebpack(config) { config.resolve.alias .set('@', resolve('src')) .set('assets', resolve('src/as ...
- vue 项目中 自定义 webpack 的 配置文件(webpack.config.babel.js)
webpack.config.babel.js,这样命名是想让webpack在编译的时候自动识别es6的语法,现在貌似不需要这样命名了,之前用webpack1.x的时候貌似是需要的 let path ...
- vue项目中配置favicon图标
如上图所示,页面顶部的小图标会让页面显得高大上,一般把这种图标叫做favicon图标.利用vue-cli脚手架搭建的项目,如果不手动配置,页面中是不会显示favicon图标. 不配置是这样子的: fa ...
- vue项目中postcss-pxtorem的使用及webpack中的配置 css中单位px和em,rem的区别
移动手机版要求我们在制作嵌入h5的时候去适配不同的手机.适配有多重模式,有flex.百分比等.字体大小的控制也有px.百分比.rem等单位,webpack中 px转rem. vue项目中postcss ...
- 在webpack搭建的vue项目中如何管理好后台接口地址
在最近做的vue项目中,使用了webpack打包工具,以前在做项目中测试环境和生产环境的接口地址都是一样的,由于现在接口地址不一样,需要在项目打包的时候手动切换不同的地址,有时候忘记切换就要重新打包, ...
- 在vue项目中的axios使用配置记录
默认vue项目中已经安装axios,基于element-ui开发,主要记录配置的相关. axiosConfig.js import Vue from 'vue' import axios from ' ...
- 前端学习笔记系列一:10整体移动vscode代码块、VSCode 使用 stylus,配置格式化设置、在vue项目中引入bootstrap
1.整体移动vscode代码块 凭借操作的经验我们能够轻松地知道将代码整体往右移只需选中代码按Tab键即可.其实往左移也很简单: 选中之后按下 shift+Tab键 即可. 2.VSCode 使用 s ...
- vue 项目中实用的小技巧
# 在Vue 项目中引入Bootstrap 有时在vue项目中会根据需求引入Bootstrap,而Bootstrap又是依赖于jQuery的,在使用npm按照时,可能会出现一系列的错误 1.安装jQu ...
- 如何在VUE项目中添加ESLint
如何在VUE项目中添加ESLint 1. 首先在项目的根目录下 新建 .eslintrc.js文件,其配置规则可以如下:(自己小整理了一份),所有的代码如下: // https://eslint.or ...
随机推荐
- Arcgis Server发布的带有透明度的地图服务,调用时不显示透明度问题
问题: 在发布道路地图时候设置地图透明度为50% 使用arcgis API for js 中 ArcGISDynamicMapServiceLayer 调用该地图时,发现透明效果不实现 如下图: 解决 ...
- linux mac 命令行 远程连接ssh提示IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY解决
➜ ~ ssh adleytales@192.168.1.10 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNIN ...
- vue路由-router
VueRouter基础 vue路由的注册 导入 <script src="https://unpkg.com/vue-router/dist/vue-router.js"&g ...
- CF1479B Painting the Array(贪心+DP)
题目大意:给你一个序列,让你提取出一个子序列A,剩余的部分组成子序列B,现定义seg(x)表示把序列x中相邻的相同数合并成一个数后,序列x的长度,分别求seg(A)+seg(B)的最大值和最小值,n= ...
- ElasticSearch7.3学习(十五)----中文分词器(IK Analyzer)及自定义词库
1. 中文分词器 1.1 默认分词器 先来看看ElasticSearch中默认的standard 分词器,对英文比较友好,但是对于中文来说就是按照字符拆分,不是那么友好. GET /_analyze ...
- Python中将字典转为成员变量
技术背景 当我们在Python中写一个class时,如果有一部分的成员变量需要用一个字典来命名和赋值,此时应该如何操作呢?这个场景最常见于从一个文件(比如json.npz之类的文件)中读取字典变量到内 ...
- protocol 协议语言介绍
Protocol Buffer是Google提供的一种数据序列化协议,是一种轻便高效的结构化数据存储格式,可以用于结构化数据序列化,很适合做数据存储或 RPC 数据交换格式.它可用于通讯协议.数据存储 ...
- docker容器登录,退出等操作命令
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口 ...
- 什么是tar 命令?
用来压缩和解压文件.tar 本身不具有压缩功能,只具有打包功能,有关压缩及解压是调用其它的功能来完成.弄清两个概念:打包和压缩.打包是指将一大堆文件或目录变成一个总的文件:压缩则是将一个大的文件通过一 ...
- 请说说你对Struts2的拦截器的理解?
Struts2拦截器是在访问某个Action或Action的某个方法,字段之前或之后实施拦截,并且Struts2拦截器是可插拔的,拦截器是AOP的一种实现. 拦截器栈(Interceptor Stac ...