webpack 学习笔记 (一)
webpack 作为当下前端前沿最受欢迎的打包工具,作为一个前端开发人员是很有必要去了解下它的。
题外话:
npm i -D 是 npm install --save-dev的简写,是安装模块并保存到package.json的devDependencies
安装webpack
npm i -D webpack (稳定版)
npm i -D webpack@<version>(指定版本号)
使用webpack命令行
在packjson.json
"scripts": {
"build": "webpack src/main.js dist/bundle.js", // 将指定文件打包到指定目录的文件
}
然后就可以使用命令打包 npm run build
使用Loader
通常webpack的配置文件都会放在webpack.config.js文件中(这个是webpack会去默认读取的)
基础内容:
const path = require('path');
module.exports = {
// JavaScript 执行入口文件
entry: './main.js',
output: {
// 将所有依赖的模块合并输出到一个bundle.js文件
filename: 'bundle.js',
// 将输出文件都放在dist目录下
path: path.resolve(__dirname, './dist'),
},
module: {
rules: [
{
// 用正在向嗯表达式去匹配要用该Loader转换的CSS文件
test: /\.css$/,
use: ['style-loader', 'css-loader?minimize'] }
]
}
};
需要安装Loader npm i -D style-loader css-loader
解读
- use属性的值需要是一个由Loader名称组成的数组,Loader的执行顺兴是由后到前的
- 每个Loader都可以通过URL querstring 的方式来传入参数, 例如 css-loader?minimize中的minimize高祖css-loader要开启css压缩
使用Plugin
Plugin是用来扩展Webpack功能的,通过在构建流程里注入钩子实现,它为Webpack带来了很大的灵活性。
配置方面: plugins属性是一个数组,里面的每一项都是插件的一个实例,在实例化一个组件时可以通过构造函数传入这个组件支持的配置属性。
使用DevServer
作用:
- 提供HTTP服务而不是使用本地文件预览
- 监听文件的变化并自动刷新网页,做到实时预览
- 支持Source Map, 以方便调试
安装: npm i -D webpack-dev-server
启动配置:
"build": "webpack-dev-server --hot --devtool source-map"
当你启动的时候会看到这样一串日志:
Project is running at http://localhost:8081/
webpack output is served from /
这意味着DevServer启动的HTTP服务器在8081端口,DevServer启动后会一直主流在后台保持运行,访问这个网址,就能获取项目根目录下的index.html
这时候还不会形成打包文件。
实施预览:
开启: webpack --watch
这样的话就会实施知道改动代码就会进行更新客户端的内容(这回刷新整个页面)
模块热替换:
开启: --hot
这样的话,代码更改只会实现局部刷新
支持Source Map
开启 --devtool source-map
总结:
- Entry: 入口, webpack执行创建的第一步将从Entry开始,可抽象成输入
- Module: 模块, 在Webpack里一切皆模块,一个模块对应一个文件。Webpack会从配置的Entry开始递归找出所有的依赖的模块
- Chunk: 代码块,一个Chunk由多个模块组合而成,用于代码合并与分割
- Loader: 模块加载器,用于经模块的原内容按照需求装换成新内容
- Plugin: 扩展插件, 在Webpack构建流程中的特定时机注入扩展逻辑,来改变构建结果或做我们想要的事情
- Output: 输出结果,在Webpack经过一系列处理并得出最终想要的代码后输出结果。
webpack 学习笔记 (一)的更多相关文章
- 【原】webpack学习笔记
之前在react的项目中有用过webpack,不过没有认真的去研究,这段时间又重新好好的学习一下webpack,发觉 webpack是一个很强大的东西.而且很好用,方便,接下来主要是做一下学习的笔记 ...
- 更博不能忘——webpack学习笔记
webpack是前端构建系统就像grunt和gulp(之前有学习过grunt所以也就大概明白webpack是个什么东西),所以说前端技术大部分还真是相通的,现在觉得当时多看的东西并不白费,虽然长时间不 ...
- webpack学习笔记(二)-- 初学者常见问题及解决方法
这篇文章是webpack学习第二篇,主要罗列了本人在实际操作中遇到的一些问题及其解决方法,仅供参考,欢迎提出不同意见. 注:本文假设读者已有webpack方面相关知识,故文中涉及到的专有名词不做另外解 ...
- webpack学习笔记一:安装webpack、webpack-dev-server、内存加载js和html文件、loader处理非js文件
一 .webpack学习环境准备: 1:window系统 2:安装node.js 官方网址 下载好后下一步下一步安装即可 安装步骤略过....... 3:nrm的安装 打开cmd命令控制台 输入:n ...
- Webpack学习笔记九 webpack优化总结
webpack 优化笔记 webpack4 自带的优化包括 swingTree(摇摆树)和作用域提升 swingTree 比如入口文件 index.js引入通用方法 util, 里面有 10个方法, ...
- Webpack学习笔记一:What is webpack
#,Loaders干嘛的,webpack can only process JavaScript natively, but loaders are used to transform other ...
- webpack学习笔记—webpack安装、基本配置
文章结构: 什么是webpack? 安装webpack 'webpack基本配置 一.什么是webpack? 在学习react时发现大部分文章都是react和webpack结合使用的,所以在学reac ...
- 【webpack学习笔记】a04-建立开发环境
开发环境就是在开发过程中为了方便配置的环境,生产环境就是开发完成即将上线的情况. 好了,说了句废话,切入正题. 在开发时,打包后的文件压缩成一团,报错调试的时候傻眼了有木有?每次做出修改需要到浏览器查 ...
- Webpack 学习笔记总结
Webpack安装 Linux系统默认已经安装了node&npm,但版本比较低,而且没法升级,可以重新下载Node然后通过软链接替换系统自带的node和npm; ln -s /path_to/ ...
- webpack学习笔记丁点积累
webpack是什么? https://webpack.js.org/concepts/ https://code.tutsplus.com/tutorials/introduction-to-web ...
随机推荐
- BZOJ4184:shallot(线段树分治,线性基)
Description 小苗去市场上买了一捆小葱苗,她突然一时兴起,于是她在每颗小葱苗上写上一个数字,然后把小葱叫过来玩游戏. 每个时刻她会给小葱一颗小葱苗或者是从小葱手里拿走一颗小葱苗,并且 让小葱 ...
- [Luogu 3707] SDOI2017 相关分析
[Luogu 3707] SDOI2017 相关分析 前言 Capella 和 Frank 一样爱好天文学. 她常在冬季的夜晚,若有所思地望着东北方上空的五边形中,最为耀眼的一个顶点. 那一抹金黄曾带 ...
- PHP判断用户是否手机访问
自定义的函数如下: $agent = check_wap(); if( $agent ) { header('Location: http://www.nowamagic.net'); exit; } ...
- vue_resource和axios
vue_resource和axios 1. 简介 vue本身不支持发送AJAX请求,需要使用vue-resource.axios等插件实现 axios是一个基于Promise的HTTP请求客户端,用来 ...
- Win10环境Tensorflow-GPU13.1/JupyterNotebook的安装
参考 : Anaconda Tensorflow GPU 版本的安装问题 https://blog.csdn.net/u010977034/article/details/62038698 Windo ...
- vmware中装的ubuntu上不了网
背景 上周末重装了windows主机的系统,之后就重新安装了vmware软件,今天使用的时候就发现git pull代码仓库的时候,发现代码仓库无法获取,检查后发现是虚拟机上不了网了. 查看了一系列教程 ...
- redis集群遇到的坑
[root@insure src]# ./redis-cli -c -h 172.16.*.* -p 6370 输入密码: auth 密码 查看节点信息 172.16.*.*:6370> clu ...
- JavaScript HTML DOM,BOM
DOM DOM 是一个 W3C (万维网联盟) 标准. DOM 定义了用于访问文档的标准: "W3C 文档对象模型 (DOM) 是一个平台和与语言无关的界面, 允许程序和脚本动态访问和更新文 ...
- java.lang.RuntimeException: Fail to connect to camera service
玩自定义照相机的时候出现了:java.lang.RuntimeException: Fail to connect to camera service 讲过百度和Google后知道是权限少加了.(试验 ...
- 搞个组装机:D
时间:2016年7月 主机:就是主机 整机:主机+显示器 推荐:自己组装,淘宝或者京东,或者去淘宝上的宁美国度.攀升兄弟看看. 4000多块配个电脑: 处理器:i5 4590 散片(发热量小) 111 ...