网站首页 > 技术文章 正文
Vue-cli3.0以后基于 webpack 4 打造,并学习了 rollup 的零配置思路。因此在设计上更加抽象和简洁,优化和完善了很多配置,所以项目初始化后,Vue帮我们完成了绝大部分情形下的 webpack 配置。就没有了Vue2.0的 build 目录和 webpack.base.config.js、webpack.dev.config.js 、webpack.prod.config.js 、vue-loader.conf.js等配置文件。
vue.config.js
vue.config.js 是一个可选的配置文件,如果项目的 (和 package.json 同级的) 根目录中存在这个文件,那么它会被 @vue/cli-service 自动加载。当我们需要修改配置信息时 ,可以在项目根目录下手动新建一个 vue.config.js,然后在 vue.config.js中配置我们的参数即可。
如何webpack配置
第一步:利用命令: vue inspect > output.js查看webpack的配置情况,执行后会在根目录下生成一份最终生效的webpack配置文件output.js,在output.js,这样可以省去看 cli-service 源码。
?第二步:在 output.js中搜索你要拍配置的相关配置信息,比如我要查看svg的配置信息,这里我们可以看到后缀为svg的文件会通过file-loader插件来渲染。
?第三步:在vue.config.js 中修改svg的配置信息,这里我希望file-loader不处理指定目录的后缀为svg的icon图标,并希望通过svg-sprite-loader来处理类型为svg的icon图标。
?第四步:重新利用命令: vue inspect > output.js导出下 output.js文件,查看下最终生效的webpack的配置情况。
这里我们可以看到file-loader渲染不包括@/assets/icons目录文件,而svg-sprite-loader只处理@/assets/icons目录文件。
?常用webpack配置
Webpack核心概念:
入口(entry),这是webpack的起点,是页面入口文件配置 。
输出(output),对应输出项配置 。
加载器(loader),导入任何类型的模块。
插件(plugin),可以用来处理各种各样的任务。
模式(mode),设置 mode 参数,可以启用 webpack 内置在相应环境下的优化。
常用的参数属性:
require属性,用来引入插件。
path属性:输出的绝对路径
test属性,用于标识出应该被对应的 loader 进行转换的某个或某些文件(配置匹配正则规则)。
use属性,表示进行转换时,应该使用哪个 loader。
include属性:只处理指定的目录文件。
exclude属性:指定某目录文件不被处理。
options属性:当前loader需要的特殊配置(可选)。
resolve属性:设置模块如何被解析。
const path = require('path') // 引入插件 function resolve (dir) { return path.join(__dirname, dir) } module.exports = { lintOnSave: false, // 取消eslint 校验代码 devServer: { port: 1527, // 配置端口号 open: true, // 自动启动浏览器 proxy: { '/': { // 将域名印射到"/" target: 'http://127.0.0.1:8080', // 后台跨域访问接口 changeOrigin: true // 允许跨域 } } }, chainWebpack: config => { config.module .rule('svg') // 默认svg图渲染配置 .exclude.add(resolve('src/assets/icons')) // 排除渲染目录 .end() config.module // 配置模板信息 .rule('icons') .test(/\.(svg)(\?.*)?$/) // svg图渲染配置 .include.add(resolve('src/assets/icons')) // 添加渲染目录 .end() .use('svg-sprite-loader') // 使用渲染插件 .loader('svg-sprite-loader') .options({ symbolId: 'icon-[name]' }) config.resolve.alias // 别名配置 .set('@', resolve('src')) // 设置@指向src目录 .set('assets', resolve('src/assets')) .set('components', resolve('src/components')) .set('static', resolve('src/static')) .set('styles', resolve('src/styles')) } }
后续如有新增会在评论区补上,更多Vue实战技巧可以参考专栏:Vue实战系列
- 上一篇: 项目中Vue的部分常用配置(vue项目中技巧知识点)
- 下一篇: env配置文件(env修改)
猜你喜欢
- 2024-09-27 一文带你彻底搞懂 NPM 知识点「进阶篇」
- 2024-09-27 深入探索Vue3:将您的项目打包为生产版本
- 2024-09-27 「Vue3教程」创建你的第一个Vue 3项目
- 2024-09-27 Vue3亮点:打造和发布你自己的组件库,简单步骤助你成为前端大神
- 2024-09-27 mac电脑如何安装VUE环境及预览(mac怎么安装vue)
- 2024-09-27 vue实战——自定义基础路径,端口号
- 2024-09-27 为了实践微前端,重构了自己的导航网站
- 2024-09-27 重磅!Vue CLI 3.0正式发布,带来多项重大更新
- 2024-09-27 运行 npm run xxx 的时候发生了什么?
- 2024-09-27 Vue全家桶-使用总结(国家基本药物使用情况分析总结)
- 1515℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 577℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 514℃MySQL service启动脚本浅析(r12笔记第59天)
- 487℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 486℃启用MySQL查询缓存(mysql8.0查询缓存)
- 470℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 450℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 448℃MySQL server PID file could not be found!失败
- 最近发表
-
- 宝塔面板Nginx如何提高网站访问速度?
- 接口调试工具ApiPost中form-data/x-www-form-urlencoded/raw区别
- 高并发场景下,Nginx性能如何提升10倍?
- 高并发场景下,Nginx如何抗住千万级流量?
- 浏览器中在线预览pdf文件,pdf.mjs插件实现web预览pdf
- 为什么你的网站加载慢?90%的人忽略了这2个设置。
- 别再无脑复制Nginx配置了!掌握这10个"性能核弹"级参数
- 你的Nginx配置,可能就是你网站最慢的一环,注意这几个优化参数
- 深入浅出HTTP压缩技术(http2压缩)
- C程序设计之:1-1/2+1/3-... + 1/n 的和
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (83)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- js判断是否是json字符串 (67)
- checkout-b (67)
- c语言min函数头文件 (68)
- asynccallback (71)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)