webpack--【基础篇】【待更新】

webpack构建与发展简史

为什么需要构建工具?

转换ES6语法、转换JSX、CSS前缀补全/预处理器、压缩混淆,图片压缩等都需要用到构建工具

前端构建工具的演变历史

ant+YUI Tool → grunt[会涉及本地磁盘IO操作,速度较慢] → fls3、gulp[文件流] → rollup、webpack、parcel

webpack的优势

社区活跃,官方维护插件丰富,官方更新迭代快,灵活性好

初识webpack

配置文件

webpack官方默认配置文件为webpack.config.js,可以在命令行通过

webpack --config

指定配置文件

webpack配置文件组成部分

复制代码
 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 }
复制代码

零配置webpack包含内容

复制代码
 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 }
复制代码

webpack环境安装

环境要求node.js和NPM

node.js安装在此不做展开

安装webpack和webpack-cli

  1. 创建项目文件夹并在其中新建package.json
  2. 初始化webpack
  3. 安装webpack和webpack-cli
  4. 检查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构建初体验

  1. 打开创建的项目文件夹,创建webpack.config.js文件
  2. 创建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 script运行webpack[便捷]

  • 说明:通过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

 

文件指纹

 

课程来源:极客学院

主讲:程柳峰

posted @   告别海岸  阅读(90)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
点击右上角即可分享
微信分享提示