webpack 知识点总结
1 webpack 的不同点:
1.1 实现代码分割
1.2 loaders
1.3 plugin system
2 webpack 打包css,需要使用css-loaders 使webpack识别css文件,第二步需要使用style-loaders使css文件可以加载到html中的style
3 Babel配置选项非常多,单一的在webpack.config.js中进行配置,会使文件太复杂,可以把Babel的配置放在.babelrc文件中进行单独配置,webpack.config.js会自动调用.babelre中的babel配置选项
4 webpack.config.js是webpack的默认配置文件,打包时会自动调动,可以使用 webpack -config 自定义设置webpack的配置文件
5 PostCSS,我们使用PostCSS来为css代码自动添加适应不同浏览器的css前缀。需要安装postcss-loader autoprefixer
//webpack.config.js
module.exports = {
...
module: {
rules: [
{
test: /\.css$/,
use: [
{
loader: "style-loader"
}, {
loader: "css-loader",
options: {
modules: true
}
}, {
loader: "postcss-loader"
}
]
}
]
}
}
// postcss.config.js
module.exports = {
plugins: [
require('autoprefixer')
]
}
6 HtmlWebpackPlugin 这个插件是依据一个简单的index.html模板,生成一个自动引用你打包后的JS文件的新的index.html.这在每次生成的js文件名称不同时非常有用(比如添加了hash值)。
新建一个index.html的模板文件,比如是index.tmpl.html
修改webpack.config.js配置文件
const webpack = require('webpack');
const HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
...
plugins: [
...
new HtmlWebpackPlugin({
template: __dirname + "index.tmpl.html"
})
],
};
在编译过程中index.html会根据index.tmpl.html模板生成最终的html页面
7 热加载模板
1 在webpack配置文件中添加HMR插件
2 在Webpack Dev Server中添加“”hot“参数
8 一些优化插件
occurenceOrderPlugin:为组件分配id,通过这个插件webpack可以分析和优先考虑使用最多的模板,并未它们分配最小的ID
UglifyJsPlugin:压缩js代码
ExtractTextPlugin:分离css和js文件
(
new webpack.optimize.OccurrenceOrderPlugin(),
new webpack.optimize.UglifyJsPlugin(),
new ExtractTextPlugin("style.css")
)
9 clean-webpack-plugin 每次打包修改的文件会生成不同的打包文件,clean-webpack-plugin 可以清除残余的文件
10 使用loaders
Loaders特性
loader支持链式传递。能够对资源使用流水线。一组链式的loader将按照相反的顺序执行。loader链中的第一个loader返回值给下一个loader。在最后一个loader,返回webpack所预期的JavaScript。
loader可以是同步的,也可以是异步的。
loader运行在Node.js,并且能够执行任何可能是操作
loader接收查询参数。用于对loader传递配置
loader也能够使用options对象进行配置
除了使用package.json常见的main属性,还可以将普通的npm模板导出为loader,做法是在package.json里定义一个loader字段
插件可以为loader带来更多特性
loader能够产生额外的任意文件
什么是webpack 模块
对比Node.js模块,webpack模块能够以各种方式表达他们的依赖关系,几个例子如下:
1 ES2015 import语句
2 CommonJS require()语句
3 AMD define和require语句
4 css/sass/less文件中的@import语句
5 样式url(...)或HTML文件(<img src=...>)中的图片链接
webpack 知识点总结的更多相关文章
- webpack 知识点
安装 webpack npm install -g webpack npm install -g webpack-cli@2.x 初始化项目 npm init -y npm install --sav ...
- webpack知识点散记
1.今天学习webpack ,刚开头就碰到了钉子,因为现在都是4+的版本,用以前的老命令不好使,如下例子及解决办法 不好用: webpack3的 打包文件 webpack a.js b.j ...
- webpack知识点整理
作用域 es6里模块化的写法 会存在的问题,变量.方法名字雷同,外部文件调用的时候出现问题 如 a.js里 var a='susan' b.js里 var a='jack' 问题解决方案,添加包裹 a ...
- 深入浅出的webpack构建工具---webpack基本配置(一)
深入浅出的webpack构建工具---webpack基本配置(一) 阅读目录 一:webpack入门构建: 1. 安装webpack到全局 2. 安装webpack到本项目. 3. 如何使用webpa ...
- 深入理解webpack基本配置(一)
1. 安装webpack到全局 在学习构建之前,我们来在本地文件新建一个存放项目的文件夹,比如叫demo1这个项目,然后进入demo1该项目的根目录后,执行命令 npm init运行下,一路回车(先简 ...
- 深入了解webpack前,可以了解的小知识点。
阅读前:文章大概是写,简单用过webpack,想继续深入了解webpack前需要了解的知识.但文章内容跟webpack使用关系并不大. 文章概要: Object.defineProperty call ...
- webpack 4 基础知识点梳理
目录 webpack安装 webpack配置文件 webpack核心概念 entry output loader plugins sourceMap webpack-dev-server 跨域 &am ...
- webpack基础知识点
webpack 是一个现代的 JavaScript 应用程序的模块打包器(module bundler). 入口(Entry) webpack 将创建所有应用程序的依赖关系图表(dependency ...
- 27、前端知识点--webpack面试题(二)
webpack面试题总结 本文主要是对webpack面试会常被问到的问题做一些总结,且文章会不断持续更新 1.webpack打包原理 把所有依赖打包成一个 bundle.js 文件,通过代码分割成单元 ...
随机推荐
- angular 图片加载失败 情况处理? 如何在ionic中加载本地图片 ?
1.angular 图片加载失败 情况处理 在directive中定义组件,在ng-src错误时,调用err-src app.directive('errSrc',function(){ return ...
- python(25)- 面向对象补充Ⅰ
一.如何使用类 1.实例化:创建对象 类名加括号就是实例化,会自动触发__init__函数的运行,可以用它来为每个实例定制自己的特征. 例子一 x=int(10) print(x) python中一切 ...
- .net网站上传图片换电脑不显示 当不用网站的IP地址访问图片,只用相对路径访问时,在发布网站的时候,将上传图片的目标文件夹,包含在项目中再发布即可。
.net网站上传图片换电脑不显示 当不用网站的IP地址访问图片,只用相对路径访问时,在发布网站的时候,将上传图片的目标文件夹,包含在项目中再发布即可.
- Android学习笔记(十八)——使用意图筛选器和实现浏览网页(附源代码)
使用意图筛选器 点击下载源代码 1.创建一个Intents项目,给该项目加入一个新类,命名为MyBrowserActivity.在res/layout目录下新增一个browser.xml: 2.在An ...
- Linux下Tun/Tap设备通信原理
Tun/Tap都是虚拟网卡,没有直接映射到物理网卡,是一种纯软件的实现.Tun是三层虚拟设备,能够处理三层即IP包,Tap是二层设备,能处理链路层网络包如以太网包.使用虚拟网络设备,可以实现隧道,如O ...
- Android开发之裁切(拍照+相冊)图像并设置头像小结
先看效果: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5 ...
- erlang启动参数记录
不管在erlang的shell下还是脚本里,启动参数都是非常有用的,抽空儿整理下erlang的常用启动参数: +A size 异步线程池的线程数,范围为0~1024,默认为10 +P Number ...
- 第 2 章 第 1 题 同位词问题 下问 Multimap实现
问题分析 输入:一个任意的单词和一个内含多个乱序单词的字典文件 输出:该单词在字典中的所有同位词 约束:允许事先对字典进行预处理 解决思路 上问的程序有个缺点 - 我们必须遍历完整个字典文件才能输出所 ...
- 面试题三:设计包括 min 函数的栈。
3.设计包括 min 函数的栈. 定义栈的数据结构,要求加入一个 min 函数.可以得到栈的最小元素. 要求函数 min.push 以及 pop 的时间复杂度都是 O(1). 思路分析: a.要想一个 ...
- [深入浅出Cocoa]iOS程序性能优化
本文转载至 http://blog.csdn.net/kesalin/article/details/8762032 [深入浅出Cocoa]iOS程序性能优化 罗朝辉 (http://blog.csd ...