内容简介:理解 Gulp 和 Webpack
Gulp 和 webpack 之间的关系是十分暧昧的,却也经常被人误解,以为它俩是竞争关系,其实不然。
Gulp 是一个任务管理工具,让简单的任务更清晰,让复杂的任务易于掌控;而 webpack 的理念是,一切皆为模块,每个模块在打包的时候都会经过一个叫做 loader 的东西,它具备非常强大的精细化管理能力,主要解决的是依赖分析问题。
Gulp 的学习,搞清楚 gulp.src
, gulp.dest
, gulp.task
, gulp.watch
四个 API 就差不多了,它的底层原理是使用 Node 的 Transform Streams,这是一个可读可写可做中间转换的 Streams 管道,由于从 src 到 dest 过程中,文件一直停留在 Streams 中,没有落地成为实体文件,所以整体运作效率非常高。
Webpack 概念很多,但搞清楚 entry
, output
和 loader
三个关键点,基本上就可以解决简单的问题了,稍微复杂的场景主要包括对资源的合并处理、分拆处理、多次打包等,部分这样的问题可以使用插件辅助解决,但是 Webpack 的强大并不在文件处理,而是依赖分析,所以在流程操作特别复杂的情况,webpack 并不能胜任工作,往往会被作为 gulp 的一个 task,整体工作流交给 gulp 主导。
插件推荐
下面推荐几个 gulp 的插件吧,比较常用的:
-
gulp-load-plugins
:自动加载 package.json 中的 gulp 插件 -
gulp-rename
: 重命名 -
gulp-uglify
:文件压缩 -
gulp-concat
:文件合并 -
gulp-less
:编译 less -
gulp-sass
:编译 sass -
gulp-clean-css
:压缩 CSS 文件 -
gulp-htmlmin
:压缩 HTML 文件 -
gulp-babel
:使用 babel 编译 JS 文件 -
gulp-jshint
:jshint 检查 -
gulp-imagemin
:压缩 jpg、png、gif 等图片 -
gulp-livereload
:当代码变化时,它可以帮我们自动刷新页面
也推荐几个 webpack 常用的 loader 和 plugin:
- Loader 列表
-
less-loader, sass-loader
:处理样式 -
url-loader, file-loader
:两个都必须用上。否则超过大小限制的图片无法生成到目标文件夹中 -
babel-loader,babel-preset-es2015,babel-preset-react
:js 处理,转码 -
expose-loader
: 将 js 模块暴露到全局
-
- Plugin 列表
-
NormalModuleReplacementPlugin
:匹配 resourceRegExp,替换为 newResource -
ContextReplacementPlugin
:替换上下文的插件 -
IgnorePlugin
:不打包匹配文件 -
PrefetchPlugin
:预加载的插件,提高性能 -
ResolverPlugin
:替换上下文的插件 -
DedupePlugin
:打包的时候删除重复或者相似的文件 -
MinChunkSizePlugin
:把多个小模块进行合并,以减少文件的大小 -
LimitChunkCountPlugin
:限制打包文件的个数 -
MinChunkSizePlugin
:根据 chars 大小,如果小于设定的最小值,就合并这些小模块,以减少文件的大小 -
OccurrenceOrderPlugin
:根据模块调用次数,给模块分配 ids,常被调用的 ids 分配更短的 id,使得 ids 可预测,降低文件大小,该模块推荐使用 -
UglifyJsPlugin
:压缩 js -
CommonsChunkPlugin
:多个 html 共用一个 js 文件(chunk) -
HotModuleReplacementPlugin
:模块热替换么,如果不在 dev-server 模式下,需要记录数据,recordPath,生成每个模块的热更新模块 -
ProgressPlugin
:编译进度 -
NoErrorsPlugin
:报错但不退出 webpack 进程 -
HtmlWebpackPlugin
:生成 html
-
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 理解原型其实是理解原型链
- 要理解深度学习,必须突破常规视角去理解优化
- 深入理解java虚拟机(1) -- 理解HotSpot内存区域
- 荐 【C++100问】深入理解理解顶层const和底层const
- 深入理解 HTTPS
- 深入理解 HTTPS
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Beginning ASP.NET 4 in C# and Vb
Imar Spaanjaars / Wrox / 2010-3-19 / GBP 29.99
This book is for anyone who wants to learn how to build rich and interactive web sites that run on the Microsoft platform. With the knowledge you gain from this book, you create a great foundation to ......一起来看看 《Beginning ASP.NET 4 in C# and Vb》 这本书的介绍吧!