webpack打包工具

目录

1. yarn包管理器

1.1 yarn 是什么, 有什么用?

1.2 yarn的使用

​​​​​​2. webpack基本概述

2.1 webpack是什么?

2.2 什么是打包?

2.3 webpack能做什么?

3. webpack基本使用步骤

3.1 webpack基本使用步骤

3.2 package.json 中 scripts 的使用

3.3 webpack的基本配置

3.4 yarn build执行流程图

4. webpack插件和loader

4.1 自动生成html - html-webpack-plugin 插件

4.2 webpack处理css文件 - css-loader

4.3 webpack处理 less 文件 - less-loader

4.4 webpack处理图片 - 内置asset模块

4.5 webpack处理字体图标 - 内置asset模块

4.6 webpack处理高版本语法 - babel语法降级

5. webpack开发服务器配置

5.1 webpack-开发服务器

5.2 webpack-开发服务器-端口号配置


1. yarn包管理器

1.1 yarn 是什么, 有什么用?
快速、可靠、安全的 依赖管理工具 。和 npm 类似, 都是 包管理工具 , 可以用于 下载管理依赖包, 比 npm 下载包, 更 稳定 快速
1.2 yarn的使用
1.2.1下载安装
windows本推荐通过软件包安装
下载地址: https://yarn.bootcss.com/docs/install/#windows-stable
mac本推荐通过命令全局安装 sudo npm i yarn -g
1.2.2  使用yarn的命令装包
  • 初始化 yarn init yarn init -y
  • 添加依赖 yarn add [package]@[version]
  • 移除包 yarn remove [package]
  • 安装项目全部依赖 yarn 或者 yarn install
  • 全局命令
    • 全局安装 yarn global add [package]
    • 全局卸载 yarn global remove [package]
    • 全局安装路径 yarn global bin

​​​​​​2. webpack基本概述

2.1 webpack是什么?
webpack是一个基于 NodeJS 的 静态模块打包器(HTML,CSS,JS,图片等资源都属于静态模块)
2.2 什么是打包?
打包基本认知:将多个文件 压缩 合并 处理的过程,就可以称之为是打包
好处:可以 减少请求次数 减轻服务器压力,加快页面访问速度

2.3 webpack能做什么?
明确:webpack是 基于NodeJS 打包工具。
①  合并压缩 :将 html/css/js/图片等, 进行 资源 合并压缩 处理(打包)

②  语法转换:
        less / sass / stylus => css
        es6 / es7 => es5 / es3
        typescript => 原生js
        ...
③  提供开发服务器: 提供一个开发服务器,监测代码变化,实时打包,实时刷新浏览器 ( 提高开发效率

3. webpack基本使用步骤

3.1 webpack基本使用步骤
  1. 新建项目文件夹,src/index.js
  2. 初始化 yarn init -y
  3. 安装依赖 yarn add webpack webpack-cli -D
  4. package.json 中,配置 scripts(自定义命令) ​​​​​​​​​​​​​

目录的说明
- dist 目录 :存放打包后代码的目录
- src目录 :存放源代码的目录
3.2 package.json 中 scripts 的使用
1. 配置命令:
         在package.json 文件中 ,可以 配置 scripts , 配置我们自己在终端的常用命令

2. 执行脚本:
         npm run 命令名 => npm run pp
        使用yarn: yarn 命令名 ,不加 run => yarn pp
3.3 webpack的基本配置
webpack基本配置 - 配置入口,出口,模式
官方参考文档: https://webpack.docschina.org/concepts/
1. 入口 entry
说明: 配置入口文件,从哪个文件开始打包
2. 出口 output
说明: 配置输出文件,打包到哪里去
3. 模式 mode:
说明:打包模式
取值:
(1)production(生产环境, 代码压缩
(2)development (开发环境, 代码不压缩

注意 : webpack 基于 node, 所以导出 , 遵守 CommonJS 规范
3.4 yarn build执行流程图

注意: 所有要被打包的资源都要跟入口产生直接/间接的引用关系

4. webpack插件和loader

4.1 自动生成html - html-webpack-plugin 插件
1. html-webpack-plugin 这个插件的作用? (webpack插件)
打包后,会帮我们 自动 将 public/index.html 拷贝到 dist 下,且会 自动引入 打包后的文件
2. html-webpack-plugin 插件怎么使用?
配置文档: https://webpack.docschina.org/plugins/html-webpack-plugin/
(1)下载插件
        yarn add html-webpack-plugin -D
(2)导入插件 (webpack.config.js)
        // 引入自动生成 html 的插件
        const HtmlWebpackPlugin = require('html-webpack-plugin')
(3)配置插件 (webpack.config.js)
        plugins: [
           new HtmlWebpackPlugin({ template: './public/index.html' })
        ]
4.2 webpack处理css文件 - css-loader

举例:现在页面包含了 html 和 js,但是没有 css 希望添加一点css,处理掉小圆点样式

目标:编写css代码,去掉小圆点,让webpack打包处理

  1.  新建 - src/css/index.css
  2.  编写去除li圆点样式代码
  3.  (重要) 一定要引入到入口才会被webpack打包
  4.  执行打包命令观察效果

​​​​​​​报错: 因为webpack默认只能处理js文件

css-loader 文档: https://webpack.docschina.org/loaders/css-loader/
style-loader文档: https://webpack.docschina.org/loaders/style-loade/
编写css文件代码src/css/index.css,在main.js中导入,打包运行,会发现报错了:

原因:
        webpack默认只认识 js 文件和 json文件 !不认识 css 文件,如果要打包处理 js 之外的静态资源,需要配置 loader 来加载预处理文件
明确:要加载处理 css => 需要配置对应的 loader => css-loader
配置 css-loader 的步骤:
1. 安装依赖 yarn add style-loader css-loader -D
2. 配置内容

4.3 webpack处理 less 文件 - less-loader
目标:编写 less 代码,让webpack打包处理 less (需要配置 less-loader)
less-loader文档: https://webpack.docschina.org/loaders/less-loader/
配置 less-loader 的步骤:
  1. 新建src/less/index.less – 设置li字体大小
  2. 把index.less引入到入口文件
  3. 安装依赖 yarn add less less-loader -D
  4. 配置内容(针对less配置
  5. 打包观察效果

4.4 webpack处理图片 - 内置asset模块
  1. 在src/assets/准备图片文件
  2. 在index.less对body设置背景图片
  3. 在入口导入图片文件, 设置到img标签插入到body
  4. 打包观察效果

报错: 因为webpack无法自己处理图片文件

如果要 解析图片等资源 ,需要用到 webpack 5 内置的 asset 资源处理模块, 已集成,无需安装。
官网地址: https://webpack.docschina.org/guides/asset-modules/
配置 rules 内容:

注意:
(1)对于小于 8k 的图片, 会自动转 base64 字符串 (节约请求次数,成本:放大约30%的图片体积大小)
(2)对于大于 8k 的图片, 会生成单独文件引入
配置图片的打包输出目录:
(默认是直接输出到了 dist 根目录, 可以通过 generator 进行配置)

4.5 webpack处理字体图标 - 内置asset模块
  1. src/assets 下 放入fonts字体相关文件夹(素材里)
  2. src/main.js 引入 assets/fonts/iconfont.css
  3. src/main.js 创建一个i标签, 使用字体图标标签添加到body上
  4. 添加针对字体文件的加载器规则, 使用asset/resource(直接输出文件并配置路径)
  5. 打包后运行网页观察效果

字体图标 和 图片的配置一致,也是用内置的asset模块处理(同样:目录可以通过 generator 进行配置)

4.6 webpack处理高版本语法 - babel语法降级
es6新版本的语法很好用 ,例如:let,const,箭头函数...,但是, es6新版本语法是有兼容性的
如果想用高版本的新语法怎么办  => babel语法降级
babel官网: https://www.babeljs.cn/
babel-loader文档: https://webpack.docschina.org/loaders/babel-loader/
babel: 一个javascript编译器, 把 高版本js语法 降级处理 输出兼容的 低版本语法
babel-loader: 可以让webpack转译打包的js代码
步骤:
  1. 在src/main.js – 定义箭头函数, 并打印箭头函数变量 (千万不能调用, 为了让webpack打包函数, 看降级效果)
  2. 安装包:yarn add -D babel-loader @babel/core @babel/preset-env
  3. 配置规则

5. webpack开发服务器配置

5.1 webpack-开发服务器
问题: 每次修改代码, 重新 yarn build 打包, 才能看到最新的效果, 实际工作中, 打包 yarn build 比较费时
原因:
  • 从0构建依赖
  • 从电脑磁盘,读取对应的文件到内存, webpack开始加载
  • 再用对应的 loader 进行处理
  • 将处理完的内容, 输出到电脑磁盘,指定目录
解决:
         起一个开发服务器 , 缓存一些已经打包过的内容, 只重新打包修改的文件, 最终运行在内存中给浏览器使用
webpack开发服务器:把代码运行在 内存 中, 保存自动更新 , 实时 返回给浏览器显示
使用步骤:
1. 下载: yarn add webpack-dev-server -D
2. package.json 配置scripts

3. 启动服务器开发: yarn serve
5.2 webpack-开发服务器-端口号配置
webpack-dev-server配置文档:
https://webpack.docschina.org/configuration/dev-server/#devserverafter
1. 在webpack.config.js中添加如下配置即可

2. 重新启动webpack开发服务器观察效果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/831616.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

阿里低代码引擎学习记录

官网 一、关于设计器 1、从设计器入手进行低代码开发 设计器就是我们用拖拉拽的方法,配合少量代码进行页面或者应用开发的在线工具。 阿里官方提供了以下八个不同类型的设计器Demo: 综合场景Demo(各项能力相对完整,使用Fusion…

转速和频率转换功能块(CODESYS ST源代码)

1、转速/频率常用转换关系 转速/频率/线速度/角速度计算FC_200 plc计算角速度-CSDN博客文章浏览阅读3.2k次。里工业控制张力控制无处不在,也衍生出很多张力控制专用控制器,磁粉制动器等,本篇博客主要讨论PLC的张力控制相关应用和算法,关于绕线机的绕线算法,大家可以参看专…

手写一个uart协议——rs232

先了解一下关于uart和rs232的基础知识 文章目录 一、RS232的回环测试1.1模块整体架构1.2 rx模块设计1.2.1 波形设计1.2.2代码实现与tb1.2.4 仿真 1.3 tx模块设计1.3.1 波形设计1.3.2 代码实现与tb1.3.4 顶层设计1.3.3 仿真 本篇内容: 一、RS232的回环测试 上位机…

Leaflet在WGS84 Web墨卡托投影与WGS84经纬度投影下空间信息变形问题及修正-以圆为例

目录 前言 一、投影的相关知识 1、经纬度投影 2、Web墨卡托投影 二、经纬度投影下的空间信息展示 1、空间信息展示 2、效果展示 3、经纬度投影下的圆修正 三、Web墨卡托投影下空间信息展示 1、底图引用 2、自定义生成圆 总结 前言 在GIS的知识海洋中,对…

VUE中定义通用函数export function

api/workAPI.js 定义一个dateTimeWeek function format2Digit(n) {//判断时间是否需要加0if (n < 10) {return "0" n;} else {return n;}}export function dateTimeWeek() {//设置返回显示的日期时间格式var date new Date();var year format2Digit(da…

记一次从登录框到前台rce

接口未授权挖掘 在网站未登录的情况下&#xff0c;由于不知道后台接口。唯一办法通过js文件、路径扫描。通过这种收集方式使用burp进行批量扫描&#xff0c;分别探测GET/POST请求。观察响应包跟状态码。判断响应包&#xff0c;确定存在未授权后&#xff0c;再构造数据包。 2 突…

【JVM】Java工具(Arthas,APM,Java Agent,JMX)

Java工具 常见的Java工具有以下几类&#xff1a; 1、诊断类工具&#xff0c;如Arthas、VisualVM等。 2、开发类工具&#xff0c;如Idea、Eclipse。 3、APM应用性能监测工具&#xff0c;如Skywalking、Zipkin等。 4、热部署工具&#xff0c;如Jrebel等。 Arthas中 Java Ag…

【kettle006】kettle访问华为openGauss高斯数据库并处理数据至execl文件(已更新)

1.一直以来想写下基于kettle的系列文章&#xff0c;作为较火的数据ETL工具&#xff0c;也是日常项目开发中常用的一款工具&#xff0c;最近刚好挤时间梳理、总结下这块儿的知识体系。 2.熟悉、梳理、总结下华为openGauss高斯数据库相关知识体系 3.欢迎批评指正&#xff0c;跪谢…

前端 TS

类型&#xff1a; 类型例子描述number1, -33, 2.5任意数字string‘hi’, “hi”, hi任意字符串booleantrue、false布尔值true或false字面量其本身限制变量的值就是该字面量的值any*任意类型unknown*类型安全的anyvoid空值&#xff08;undefined&#xff09;没有值&#xff08;或…

zookeeper 都有哪些使用场景?(最全 zookeeper 用法介绍)

目录 一、面试官心理分析 二、面试题剖析 1.分布式协调 2.分布式锁 3.元数据/配置信息管理 4.HA高可用性 一、面试官心理分析 现在聊的是分布式系统&#xff0c;面试官跟你聊完了 dubbo 相关的一些问题之后&#xff0c;已经确认你对分布式服务框架/RPC框架基本都有一些认…

#失眠或混乱/失控后写下自己所思的习惯

#失眠或混乱/失控后写下自己所思的习惯 具体而言就是当我处于受混乱扰动的状态时&#xff08;诸如情绪波动或事件冲击&#xff09;&#xff0c;暂时中断日常事项&#xff08;这往往会被动出现&#xff09;&#xff0c;主动开启往日的珍藏歌单进行被动平复&#xff08;以沉溺音乐…

windows驱动开发-PNP管理器

PNP技术是由Microsoft提出的&#xff0c;英文Plug and play的缩写&#xff0c;中译即插即用&#xff0c;意思是系统自动侦测周边设备和板卡并自动安装设备驱动程序&#xff0c;做到插上就能用&#xff0c;无须人工干预&#xff0c;是Windows自带的一项技术。所谓即插即用是指将…

云计算技术概述_3.云计算的部署方式

根据NIST的定义&#xff0c;云计算从部署模式上看可以分为公有云、社区云、私有云和混合云四种类型。 注&#xff1a;NIST&#xff08;美国国家标准与技术研究院&#xff09;是美国商务部下属的一个物理科学实验室和非监管机构。 其任务是促进创新和行业竞争力。 NIST 将其活动…

PyTorch深度学习——数据输入和预处理

pytorch数据载入 数据载入 在使用pytorch构建和训练模型的过程中&#xff0c;需要经常把原始数据&#xff08;比如图片、音频&#xff09;转化为张量的格式&#xff0c;为了方便地批量处理图片数据&#xff0c;pytorch引入了一系列工具来对这个过程进行包装 torch.utils.data…

计算机网络chapter2——应用层

文章目录 第2章 应用层章节引出—— 2.1应用层协议原理2.1.1 网络应用程序体系结构&#xff08;1&#xff09;客户-服务器体系结构&#xff08;2&#xff09;对等(P2P)体系结构2.1.2 进程通信1.客户和服务器进程2.进程与计算机网络之间的接口3. 进程寻址 2.1.3 可供应用程序使用…

STM32数字示波器+详细注释+上位机程序+硬件

目录 1、设计指标&#xff1a; 2、功能&#xff1a; 3、上位机的程序 ​4、测试的照片 5、PCB 6、模拟电路板 7、程序 资料下载地址&#xff1a;STM32数字示波器详细注释上位机程序硬件 1、设计指标&#xff1a; 主控: STM32…

中华科技控股集团:人工智能标准化引领者与数字化服务新航程的启航者

4月30日, 矗立于时代科技潮头的中华科技控股集团&#xff0c;自2010年在香港这片国际金融沃土上诞生以来&#xff0c;便以其独特的国资背景与全球化视野&#xff0c;肩负起推动中国科技进步与产业升级的重任。作为国资委麾下的重要一员&#xff0c;中华科技始终坚持创新驱动发展…

MLP手写数字识别(2)-模型构建、训练与识别(tensorflow)

查看tensorflow版本 import tensorflow as tfprint(Tensorflow Version:{}.format(tf.__version__)) print(tf.config.list_physical_devices())1.MNIST的数据集下载与预处理 import tensorflow as tf from keras.datasets import mnist from keras.utils import to_categori…

三生随记——博物馆的深夜秘密

博物馆的深夜秘密 第一章&#xff1a;古老的博物馆 在一座历史悠久的城市中&#xff0c;矗立着一座庞大的博物馆&#xff0c;收藏着无数的历史文物和艺术品。这座博物馆的外观宏伟壮观&#xff0c;充满了历史的痕迹。然而&#xff0c;随着夜幕的降临&#xff0c;博物馆里似乎隐…

Adobe 更新 Firefly Image 3 图像生成模型

一个工具或者模型&#xff0c;对于初次使用的人来说&#xff0c;易用性和超出预期的效果很能吸引使用者&#xff0c;suno和mj在这方面我感觉确实不错&#xff0c;第一次使用感觉很惊艳。 Adobe 更新 Firefly Image 3 图像生成模型&#xff0c;我用了mj的提示词&#xff0c;最后…