webpack 1.x 学习总结
webpack介绍(from github):
A bundler for javascript and friends. Packs many modules into a few bundled assets. Code Splitting allows to load parts for the application on demand. Through "loaders," modules can be CommonJs, AMD, ES6 modules, CSS, Images, JSON, Coffeescript, LESS, ... and your custom stuff. ——from github
总之意思就是说webpack是一个打包工具,他可以通过“代码分割”打包的时候包含所需要的部分,通过loader处理各种类型包含commonjs、amd、es6、css、iamge等等各种类型的文件。
各类文件处理方式:
webpack相比较grunt按照任务执行操作,他是根据文件类型处理文件。项目中主要的文件类型有html、css、less/sass、image、tpl(模板文件)、js.下面分别进行说明:
.html:
处理html文件需要html-laoder,webpack.config.js配置文件中的配置方式如下所示:
{
test:/\.html/,
loader:'html-loader'
},
html进行更加复杂操作需要html-webpack-plugin插件,配置如下图所示:
plugins:[
new htmlWebpackPlugin({
filename:'a.html',
template:"index.html",
inject:'body',//body head false
title:'webpack is a',
chunks:['a']
//excludeChunks:['c'],
minify:{
removeComments:true,
collapseWhitespace:true
}
})
]
ps参数说明:
Filename:打包后文件名
Template:模板对象
Inject:body/head/false(不自动注入)
Minify:removeComments/collapseWhitespace(压缩)
Chunks:包含哪些chunk
excludeChunks:不包含哪个chunk
自定义参数:可在模板中通过<%=xxx%>方式获取
compilation.assets[路径].source():内联插入
.js:
webpack可以处理普通js,对于es6(CSMAScript-262第六次修改,也叫ECMA2015)语法需要转换成普通js,因此需要一个转换器--babel,babel需要知道你想要转换哪些es6特性。通过presets可以设置,转换哪些特性,设置presets的值为latest或者env则转换所有特性,配置如下:
module:{
loaders:[
{
test:/\.js$/,
loader:'babel-loader',
include:path.resolve(__dirname,"src"),
exclude:path.resolve(__dirname,"node_modules"),
query:{
presets:['latest']
}
}
]
}
因为babel处理比较耗时,特制定include(指定扫描哪些路径)与exclude(指定扫描排除哪些路径)
.css:
css-loader用于处理css文件 style-loader用于将css-loader处理后的文件插入到页面中(建立style标签)
{
test:/\.css$/,
loader:'style-loader!css-loader'
},
.css/less:
less文件通过less-loader处理,处理后仍需要css-loader和style-loader,如有需要还需要post-css-loader(增加浏览器前缀)
{
test:/\.less$/,
loader:'style-loader!css-loader!less-loader'
}
.jpg...:
处理图片文件可以使用file-loader和url-loader,两者的区别:file-loader负责加载图片,url-loader可以设置一个limit值,当图片大小大于该阈值时使用file-loader加载,当图片小于该阈值时会被硬编码成base64格式,添加到文件中。配置如下所示:
{
test:/\.(jpg|png|gif|svg)/,
loader:'file-loader',//url-loader
query:{
name:'static/[name]-[hash].[ext]',
//limit:'20000' //单位b
}
//test:/\.(jpg|png|gif|svg)/i,
//loaders:[
// 'url-loader?limit=20000&name=assets/[name]-[hash:5].[ext]',
// 'image-webpack'
//] }
.tpl
tpl主要是指项目中用到的各种模板文件,比如ejs/jade.....我们需要安装响应的“loader”,以ejs为例,首先要安装ejs-loader
{
test:/\.tpl/,
loader:'ejs-loader'
}
了解到的只是webpack打包冰山一角,持续跟进webpack中。。。。
webpack 1.x 学习总结的更多相关文章
- vue第二单元(webpack的配置-学习webpack的常用配置)
第二单元(webpack的配置-学习webpack的常用配置) #课程目标 掌握webpack的常用配置 掌握如何根据实际的需求修改webpack的对应配置 了解webpack-dev-server的 ...
- webpack 3.X学习之多页面打包
简介 我们开发不可能只写一个页面,每次都要写很多页面,这时为了开发效率,我们使用前端自动化工具webpack,那么webpack是如何打包页面的呢?又是如何打包多页面的呢? 单页面打包 我们知道要打包 ...
- webpack入门-个人学习资源收集
本来是想自己写哈个人学习webpack心德的,不过网上现在已经有各种比较好的,详细的入门或者深入资源了. 所以我就简单总结了一下,我在入门webpack时看的一些博客和文档,以及顺道看到的一些觉得也应 ...
- Webpack打包工具学习使用
Webpack 是当下最热门的前端资源模块化管理和打包工具.它可以将许多松散的模块按照依赖和规则打包成符合生产环境部署的前端资源.还可以将按需加载的模块进行代码分隔,等到实际需要的时候再异步加载.通过 ...
- webpack vuejs项目学习心得
最近在做移动端的项目,最近webpack和vuejs很火,就想到了用vuejs webpack来构建我的项目 先了解了一些webpack的入门基础 http://webpack.github.io/d ...
- webpack之基础学习
webpack工作原理: 通过一个入口文件,main.js开始找到你的项目的所有依赖文件,使用loaders处理它们,最后打包为一个浏览器可识别的JavaScript文件. Webpack的核心原理 ...
- webpack 3.X学习之Babel配置
Babel是什么 Babel是一个编译JavaScript的平台,它的强大之处表现在可以通过编译帮你达到: 使用下一代的javascript(ES6,ES7,--)代码,即使当前浏览器没有完成支持: ...
- webpack 3.X学习之图片处理
CSS中图片处理 在src目录下新建一个images目录,把图片放入images文件夹中:在index.html文件中增加一个div标签: /src/index.html: <div id=&q ...
- webpack 3.X学习之CSS处理
Loaders Loaders是Webpack最重要的功能之一,他也是Webpack如此盛行的原因.通过使用不同的Loader,Webpack可以的脚本和工具,从而对不同的文件格式进行特定处理. Lo ...
- webpack 3.X学习之基本配置
创建配置文件webpack.config.js 在根目录在手动创建webpack.config.js,配置基本模板 module.exports ={ entry:{}, output:{}, mod ...
随机推荐
- 【JAVA零基础入门系列】Day9 Java中的那个大数值
什么是大数值?用脚趾头想也知道,当然是"大"的数值(233).Java中有两个用于表示大数值的类,BigInteger和BigDecimal,那到底能表示多大的数值呢?理论上,可以 ...
- 对Spring事务一些问题的讨论
提起spring事务,就会让人联想起四大基本特征,五个隔离级别,七大传播特性.相信大多数人都知道这些东西,但是知道是一回事情,能用好真的是另一回事了.在使用Spring事务的时候,我曾遇到过几个比较严 ...
- mysql开启慢查询日志以及查看(转载自网络)
转载自http://database.51cto.com/art/201309/410314_1.htm
- Javascript的RegExp对象(转载自网络)
正则表达式是一个描述字符模式的对象. JavaScript的RegExp对象和String对象定义了使用正则表达式来执行强大的模式匹配和文本检索与替换函数的方法. '***************** ...
- Mayor's posters
Mayor's posters Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u Sub ...
- SAXReader简单实例解析HTML
转载自:http://blog.csdn.net/seayqrain/article/details/5024068# 使用SAXReader需要导入dom4j-full.jar包. dom4j是一个 ...
- kafka单机模式部署安装,zookeeper启动
在root的用户下 1):前提 安装JDK环境,设置JAVA环境变量 2):下载kafka,命令:wget http://mirrors.shuosc.org/apache/kafka/0.10.2 ...
- javascript创建css、js,onload触发callback兼容主流浏览器的实现
http://www.fantxi.com/blog/archives/load-css-js-callback/ 由于需要写个函数,既可以加载css,又可以加载js,所以对各主流浏览器对加载js.c ...
- 【APP问题定位(二)】Charles定位工具
Charles工具是APP测试中简单有使用的一款测试工具,可以通过捕获request和response的信息初步确定bug的原因所在. 本文将从安装.使用两个方面来介绍. 安装 点击这里进入下载页,注 ...
- selenium页面元素操作(简易版)
介绍一下,这是处理页面元素的基本方法,@selenium 发送文字 element.send_keys(keys_to_send) 单击 element.click() 提交表单 el ...