网站首页 > 开源技术 正文
什么是 webpack
webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler),它能把各种资源作为模块来使用和处理,把有依赖关系的各种文件打包成一系列的静态资源。如图中所示,webpack支持打包脚本、样式、图片、表等资源。
webpack配置在Vue-cli3.0与 2.0 的区别
Vue3.0以后基于 webpack 4 打造,设计更加抽象和简洁,优化和完善了很多配置,所以项目初始化后,Vue帮我们完成了绝大部分情形下的 webpack 配置。就没有了Vue2.0的 build 目录和 webpack.base.config.js、webpack.dev.config.js 、webpack.prod.config.js 、vue-loader.conf.js等配置文件。
如何修改webpack配置
那么我们想自定义webpack时怎么办呢 ,这时可以在项目根目录下手动新建一个 vue.config.js,vue.config.js 是一个可选的配置文件,如果项目的 (和 package.json 同级的) 根目录中存在这个文件,那么它会被 @vue/cli-service 自动加载。所以我们只要在 vue.config.js配置我们的参数即可。
webpack基本属性
如果不了解webpack的可以进webpack官网了解下,关于vue.config.js可以参考Vue官方的配置指南,在配置之前我们需要先来了解下webpack一些核心概念:
入口(entry),这是webpack的起点,是 页面入口文件配置 。
输出(output),对应输出项配置 。
加载器(loader),导入任何类型的模块。
插件(plugin),可以用来处理各种各样的任务。
模式(mode),设置 mode 参数,可以启用 webpack 内置在相应环境下的优化。
再来了解些常用的参数属性:
require属性,用来引入插件。
path属性:输出的绝对路径
test属性,用于标识出应该被对应的 loader 进行转换的某个或某些文件(配置匹配正则规则)。
use属性,表示进行转换时,应该使用哪个 loader。
include属性:只处理指定的目录文件。
exclude属性:指定某目录文件不被处理。
options属性:当前loader需要的特殊配置(可选)。
resolve属性:设置模块如何被解析。
如何配置webpack
了解了以上的基本参数属性我们就可以看懂webpack的配置信息了,这里还是拿之前Vue实战034:使用SVG图标详解中的配置svg处理方案解析,因为之前配置的有点不完善,所以今天顺带一起优化下了,在配置之前我们先来看来最初的配置情况,利用命令: vue inspect > output.js可以在根目录下生成一份webpack配置文件output.js,在output.js我们搜索svg配置可以看到svg默认情况下是采用file-loader来处理的。
前面说的配置不完善是因为我忽略了其他地方是否也会使用到svg图片,我将svg配置给直接清除了,统一用svg-sprite-loader来处理了,file-loader生成的文件的文件名就是文件内容的 MD5 哈希值并会保留所引用资源的原始扩展名(确保了图片的唯一性),这种处理方式比较适合图片,但显然不适合icon图标的使用。
这里我希望svg图标使用svg-sprite-loader插件来处理,而其他适用到svg图片时还是使用file-loader来处理,所以这里我将配置进行了优化,先在原有的svg处理方案中添加一个.exclude.add(resolve('src/assets/icons'))选项,将我们防止svg图标的目录过滤掉,这样处理到SVG图标的时候就不会走这个方案。然后我再新增了一个针对src/assets/icons目录中的svg图标处理方案,遇到图标时就使用该方案。
const path = require('path')
function resolve (dir) {
return path.join(__dirname, dir)
}
module.exports = {
chainWebpack: config => {
config.module
.rule('svg')
.exclude.add(resolve('src/assets/icons'))
.end()
config.module
.rule('icons')
.test(/\.(svg)(\?.*)?$/)
.include.add(resolve('src/assets/icons'))
.end()
.use('svg-sprite-loader')
.loader('svg-sprite-loader')
.options({
symbolId: 'icon-[name]'
})
}
}
svg图标下载
Iconfont阿里巴巴图库就满足我们平时用到的图标了,同时也支持下载svg格式的图标,搜索你想要的图标添加入库,然后点击图标中的下载按钮就弹出如下选择,我们下svg图即可。
注意:测试时一定要重启服务,刷新服务是看不到效果的。
欢迎关注本人的公众号:编程手札,文章也会在公众号更新
猜你喜欢
- 2024-10-25 前端开发:JavaScript 资源大全(一)
- 2024-10-25 前端如何绘制svg格式图片?(svg html5)
- 2024-10-25 Canvas 从入门到劝朋友放弃(图解版)
- 2024-10-25 想在vue内使用svg:如何展示?如何改色?
- 2024-10-25 前端程序员如何转投SVG领域?(前端 转行)
- 2024-10-25 Web前端培训:前端开发必备工具—SVG优化器
- 2024-10-25 推荐一个C#操作SVG图形矢量图的开源项目
- 2024-10-25 细品用SVG实现一个优雅的提示框(svg标签怎么用)
- 2024-10-25 SVG在Web攻击中的应用(svg web)
- 2024-10-25 图形工具的另一种以光标为中心缩放实现
欢迎 你 发表评论:
- 1577℃北京那些看上去很牛的车牌们!(北京厉害车牌)
- 1098℃2025年度视频去水印软件TOP5对比:哪款最值得用
- 665℃《我的世界》不同版本的差异 ——新手向
- 583℃新疆话里的“虫子”
- 539℃正畸治疗后的牙间黑三角
- 499℃蓝牙设备配对失败的系统性解决方案与技术解析
- 496℃中兴光猫 Telnet下设置大全(中兴光猫命令大全)
- 491℃未备份电脑文件数据恢复的七种方法
- 最近发表
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)

本文暂时没有评论,来添加一个吧(●'◡'●)