webpack--【基础篇】【待更新】
webpack构建与发展简史
为什么需要构建工具?
转换ES6语法、转换JSX、CSS前缀补全/预处理器、压缩混淆,图片压缩等都需要用到构建工具
ant+YUI Tool → grunt[会涉及本地磁盘IO操作,速度较慢] → fls3、gulp[文件流] → rollup、webpack、parcel
社区活跃,官方维护插件丰富,官方更新迭代快,灵活性好
初识webpack
配置文件
webpack官方默认配置文件为webpack.config.js,可以在命令行通过
webpack --config
指定配置文件
1 module.exports = { 2 /*打包的入口文件*/ 3 entry: './src/index.js', 4 /*打包的输出*/ 5 output: './dist/main.js', 6 /*[production/development/none]*/ 7 mode: 'production', 8 9 module: { 10 /*Loader配置*/ 11 rules: [ 12 {test: /\.txt$/,use: 'raw-loader'} 13 ] 14 },
15 /*插件配置*/ 16 plugins: [ 17 new HtmlwebpackPlugin({ 18 template: './src/index.html' 19 }) 20 ] 21 }
1 module.exports = { 2 /*默认entry*/ 3 entry: './src/index.js', 4 /*默认output*/ 5 output: './dist/main.js', 6 mode: 'production', 7 module: { 8 rules: [ 9 {test: /\.txt$/,use: 'raw-loader'} 10 ] 11 }, 12 plugins: [ 13 new HtmlwebpackPlugin({ 14 template: './src/index.html' 15 }) 16 ] 17 }
环境要求node.js和NPM
node.js安装在此不做展开
- 创建项目文件夹并在其中新建package.json
- 初始化webpack
- 安装webpack和webpack-cli
- 检查webpack环境是否搭建成功
// 创建空目录和package.json mkdir my-project cd my-project npm init -y // -y是默认选择yes,会生成初始webpack文件 // 安装webpack 和 webpack-cli npm install webpack webpack-cli --save-dev // 检查是否安装成功 ./node_modules/.bin/webpack -v
安装过程展示
webpack构建初体验
- 打开创建的项目文件夹,创建webpack.config.js文件
- 创建src文件夹并写index.js等文件,之后打包,生成dist文件夹
webpack.config.js文件基础写法
1 'use strict' 2 const path = require('path') 3 module.exports = { 4 entry: './src/index.js', 5 output: { 6 path: path.join(__dirname, 'dist'), 7 filename: 'bundle.js' 8 }, 9 mode: 'production' 10 }
编写js文件,启动命令行
./node_modules/.bin/webpack // 直接运行是不指定默认运行配置文件名称 asset bundle.js 55 bytes [emitted] [minimized] (name: main) orphan modules 63 bytes [orphan] 1 module ./src/index.js + 1 modules 137 bytes [built] [code generated] webpack 5.32.0 compiled successfully in 445 ms
- 说明:通过npm run build 运行构建
- 原理:模块局部安装会在node_modules/.bin目录创建软链接
在package.json中“script"中添加
{
"name": "my_webpack",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"build": "webpack" // 添加内容
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {
"webpack": "^5.32.0",
"webpack-cli": "^4.6.0"
}
}
启动控制台构建
npm run build
webpack核心概念
entry
output
loaders
plugins
mode
webpack资源解析
解析ES6
解析ReactJSX
解析CSS
解析Less和Sass
解析图片和字体
文件监听
热更新webpack-dev-server
热更新ebpack-dev-middleware
文件指纹
课程来源:极客学院
主讲:程柳峰
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!