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 知识点总结的更多相关文章

  1. webpack 知识点

    安装 webpack npm install -g webpack npm install -g webpack-cli@2.x 初始化项目 npm init -y npm install --sav ...

  2. webpack知识点散记

    1.今天学习webpack  ,刚开头就碰到了钉子,因为现在都是4+的版本,用以前的老命令不好使,如下例子及解决办法 不好用:  webpack3的   打包文件   webpack a.js b.j ...

  3. webpack知识点整理

    作用域 es6里模块化的写法 会存在的问题,变量.方法名字雷同,外部文件调用的时候出现问题 如 a.js里 var a='susan' b.js里 var a='jack' 问题解决方案,添加包裹 a ...

  4. 深入浅出的webpack构建工具---webpack基本配置(一)

    深入浅出的webpack构建工具---webpack基本配置(一) 阅读目录 一:webpack入门构建: 1. 安装webpack到全局 2. 安装webpack到本项目. 3. 如何使用webpa ...

  5. 深入理解webpack基本配置(一)

    1. 安装webpack到全局 在学习构建之前,我们来在本地文件新建一个存放项目的文件夹,比如叫demo1这个项目,然后进入demo1该项目的根目录后,执行命令 npm init运行下,一路回车(先简 ...

  6. 深入了解webpack前,可以了解的小知识点。

    阅读前:文章大概是写,简单用过webpack,想继续深入了解webpack前需要了解的知识.但文章内容跟webpack使用关系并不大. 文章概要: Object.defineProperty call ...

  7. webpack 4 基础知识点梳理

    目录 webpack安装 webpack配置文件 webpack核心概念 entry output loader plugins sourceMap webpack-dev-server 跨域 &am ...

  8. webpack基础知识点

    webpack 是一个现代的 JavaScript 应用程序的模块打包器(module bundler). 入口(Entry) webpack 将创建所有应用程序的依赖关系图表(dependency ...

  9. 27、前端知识点--webpack面试题(二)

    webpack面试题总结 本文主要是对webpack面试会常被问到的问题做一些总结,且文章会不断持续更新 1.webpack打包原理 把所有依赖打包成一个 bundle.js 文件,通过代码分割成单元 ...

随机推荐

  1. maximum-depth-of-binary-tree——找出数的最大深度

    Given a binary tree, find its maximum depth. The maximum depth is the number of nodes along the long ...

  2. 微信自带浏览器被输入法阻挡文本框的 jQuery 解决方法 by FungLeo

    微信自带浏览器被输入法阻挡文本框的 jQuery 解决方法 by FungLeo 前言 做好了项目之后,在各种浏览器里面測试,都没有问题.非常高兴,交付后端使用.然而发如今微信自带浏览器里面,却是出现 ...

  3. C和C++代码精粹笔记1

    CH1 更好的C 运算符重载规定,必须有一个为用户自定义类型 一些输出没注意到的函数: float x = 123.456, y = 12345; //cout.precision(2); //显示两 ...

  4. java new一个接口到底要做什么

    转自:http://www.cnblogs.com/yjmyzz/p/3448330.html java中的匿名类有一个倍儿神奇的用法,见下面代码示例: 1 package contract; 2 3 ...

  5. Server.xml配置详解

    <Server port="8005" shutdown="SHUTDOWN"> <!-- 属性说明 port:指定一个端口,这个端口负责监听 ...

  6. 《学习opencv》笔记——矩阵和图像操作——cvConvertScale,cvConvertScaleAbs,cvCopy and cvCountNonZero

    矩阵和图像的操作 (1)cvConvertScale函数 其结构: void cvConvertScale( //进行线性变换,将src乘scale加上shift保存到dst const CvArr* ...

  7. C# 打开指定的目录 记住路径中 / 与 \ 的使用方法

    老生常谈的问题了,C#在指定目录时,路径中要使用 \\.直接看实例 using System; namespace OpenFile{ class OpenFile{ static void Main ...

  8. unity3d从零開始(五):了解摄像机

    1.简单介绍         Unity的摄像机是用来将游戏世界呈现给玩家的,游戏场景中至少有一台摄像机.也能够有多台. 2.类型         Unity中支持两种类型的摄像机,各自是Perspe ...

  9. curl is a tool to transfer data from or to a server curl POST

    https://curl.haxx.se/docs/manpage.html curl is a tool to transfer data from or to a server, using on ...

  10. MongoDB 学习三

    这章我们学习MongoDB的查询操作. Introduction to find find方法用于执行MongoDB的查询操作.它返回collecion中的documents子集,没有添加参数的话它将 ...