◆ 前端工程化 ◆ webpack 的基本使用 ◆ webpack 中的插件 ◆ webpack 中的 loader ◆ 打包发布 ◆ Source Map

news2024/11/24 14:49:43

◆ 前端工程化 ◆ webpack 的基本使用 ◆ webpack 中的插件 ◆ webpack 中的 loader ◆ 打包发布 ◆ Source Map

  • ◆ 前端工程化
  • ◆ webpack 的基本使用
  • ◆ webpack 中的插件
  • ◆ webpack 中的 loader
    • 1. loader 概述
    • 打包处理css文件
    • 打包处理less文件
    • 打包处理样式表中与url路径相关的文件
    • 打包处理 js 文件中的高级语法
  • ◆ 打包发布
    • 1. 为什么要打包发布
    • 2. 配置 webpack 的打包发布
    • 小结
  • ◆ Source Map

◆ webpack 的基本使用
◆ webpack 中的插件
◆ webpack 中的 loader
◆ 打包发布
◆ Source Map)

◆ 前端工程化

模块化 组件化 规范化 自动化
vue项目是基于工程化的开发

◆ webpack 的基本使用

什么是 webpack
概念:webpack 是前端项目工程化的具体解决方案。
主要功能:它提供了友好的前端模块化开发支持,以及代码压缩混淆、处理浏览器端 JavaScript 的兼容性、性
能优化等强大的功能。
好处:让程序员把工作的重心放到具体功能的实现上,提高了前端开发效率和项目的可维护性。
注意:目前 Vue,React 等前端项目,基本上都是基于 webpack 进行工程化开发的。
2. 创建列表隔行变色项目
① 新建项目空白目录,并运行 npm init –y 命令,初始化包管理配置文件 package.json
② 新建 src 源代码目录
③ 新建 src -> index.html 首页和 src -> index.js 脚本文件
④ 初始化首页基本的结构
⑤ 运行 npm install jquery –S 命令,安装 jQuery
⑥ 通过 ES6 模块化的方式导入 jQuery,实现列表隔行变色效果

mode 的可选值
mode 节点的可选值有两个,分别是:
① development
⚫ 开发环境
⚫ 不会对打包生成的文件进行代码压缩和性能优化
⚫ 打包速度快,适合在开发阶段使用
② production
⚫ 生产环境
⚫ 会对打包生成的文件进行代码压缩和性能优化
⚫ 打包速度很慢,仅适合在项目发布阶段使用

webpack.config.js 文件的作用
webpack.config.js 是 webpack 的配置文件。webpack 在真正开始打包构建之前,会先读取这个配置文件,
从而基于给定的配置,对项目进行打包。
注意:由于 webpack 是基于 node.js 开发出来的打包工具,因此在它的配置文件中,支持使用 node.js 相关
的语法和模块进行 webpack 的个性化配置。

◆ webpack 中的插件

  1. webpack 插件的作用
    通过安装和配置第三方的插件,可以拓展 webpack 的能力,从而让 webpack 用起来更方便。最常用的
    webpack 插件有如下两个:
    ① webpack-dev-server
    ⚫ 类似于 node.js 阶段用到的 nodemon 工具
    ⚫ 每当修改了源代码,webpack 会自动进行项目的打包和构建
    ② html-webpack-plugin
    html-webpack-plugin 是 webpack 中的 HTML 插件,可以通过此插件自定制 index.html 页面的内容。
    需求:通过 html-webpack-plugin 插件,将 src 目录下的 index.html 首页,复制到项目根目录中一份!
    通过 HTML 插件复制到项目根目录中的 index.html 页面,也被放到了内存中
    HTML 插件在生成的 index.html 页面,自动注入了打包的 bundle.js 文件
    ⚫ webpack 中的 HTML 插件(类似于一个模板引擎插件)
    ⚫ 可以通过此插件自定制 index.html 页面的内容

  2. devServer节点
    在这里插入图片描述

◆ webpack 中的 loader

1. loader 概述

在实际开发过程中,webpack 默认只能打包处理以 .js 后缀名结尾的模块。其他非 .js 后缀名结尾的模块,
webpack 默认处理不了,需要调用 loader 加载器才可以正常打包,否则会报错!
loader 加载器的作用:协助 webpack 打包处理特定的文件模块。比如:
⚫ css-loader 可以打包处理 .css 相关的文件
⚫ less-loader 可以打包处理 .less 相关的文件
⚫ babel-loader 可以打包处理 webpack 无法处理的高级 JS 语法

打包处理css文件

在这里插入图片描述

打包处理less文件

在这里插入图片描述

打包处理样式表中与url路径相关的文件

在这里插入图片描述

打包处理 js 文件中的高级语法

webpack 只能打包处理一部分高级的 JavaScript 语法。对于那些 webpack 无法处理的高级 js 语法,需要借
助于 babel-loader 进行打包处理。例如 webpack 无法处理下面的 JavaScript 代码
在这里插入图片描述
安装babel-loader相关的包
在这里插入图片描述 配置 babel-loader
在这里插入图片描述

◆ 打包发布

1. 为什么要打包发布

项目开发完成之后,需要使用 webpack 对项目进行打包发布,主要原因有以下两点:
① 开发环境下,打包生成的文件存放于内存中,无法获取到最终打包生成的文件
② 开发环境下,打包生成的文件不会进行代码压缩和性能优化
为了让项目能够在生产环境中高性能的运行,因此需要对项目进行打包发布。

2. 配置 webpack 的打包发布

在这里插入图片描述3. 把 JavaScript 文件统一生成到 js 目录中
在这里插入图片描述
4. 把图片文件统一生成到 image 目录中
在这里插入图片描述
5. 自动清理 dist 目录下的旧文件
在这里插入图片描述

小结

在这里插入图片描述

◆ Source Map

在这里插入图片描述
Source Map 的最佳实践
① 开发环境下:
⚫ 建议把 devtool 的值设置为 eval-source-map
⚫ 好处:可以精准定位到具体的错误行
② 生产环境下:
⚫ 建议关闭 Source Map 或将 devtool 的值设置为 nosources-source-map
⚫ 好处:防止源码泄露,提高网站的安全性

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

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

相关文章

Python——2

一、循环 1.range() 函数 用于生成一个整数序列,返回的是一个迭代对象,可用 in / not in查看。 (1)range(stop) 创建一个 [0,stop) 的整数序列,步长为1。 (2)range(start, stop) 创建一个 [s…

面试谎报了职级,本来是6,谎报成7,已经到HR这一步了,怎么了?

面试时谎报职级,公司能查出来吗? 一位网友说,自己在业务面时谎报了职级,把6报成7,现在已经到hr这一步了,该怎么办?是继续编吗? 有人不明白,为什么要谎报职级?…

Pycharm 安装教程,及常用快捷键,附教程

简介 PyCharm是一款Python IDE,其带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如, 调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制等等。此外,该IDE提供了一些高级功能&a…

有史以来最强的5G入门科普!

一个简单且神奇的公式 今天的故事,从一个公式开始讲起。 这是一个既简单又神奇的公式。说它简单,是因为它一共只有3个字母。而说它神奇,是因为这个公式蕴含了博大精深的通信技术奥秘,这个星球上有无数的人都在为之魂牵梦绕。…

CloudCompare二次开发之如何配置PCL点云库?

文章目录 0.引言1.修改两个CMakeLists.txt文件2.源码编译3.测试PCL 0.引言 因笔者课题涉及点云处理,需要通过PCL进行点云数据分析处理,查阅现有网络资料,实现了VisualStudio2015(x86)配置PCL1.8.1点云库(见:VisualStud…

基于卷积的图像分类识别(七):SENet

系列文章目录 本专栏介绍基于深度学习进行图像识别的经典和前沿模型,将持续更新,包括不仅限于:AlexNet, ZFNet,VGG,GoogLeNet,ResNet,DenseNet,SENet,MobileN…

网络编程 lesson3 UDP基础编程

目录 UDP介绍 UDP编程 函数接口 recvfrom sendto 小练习:实现服务器和客户端相连(使用UDP实现) client server UDP介绍 UDP(User Datagram Protocol,用户数据报协议)是一种在计算机网络中常用的传输…

C++常量成员函数(类成员函数后加const、类成员函数参数列表后加const)常量对象(类名前加const)和非常量对象

文章目录 常量对象和非常量对象(常量对象不能调用非常量成员函数)常量成员函数(常量成员函数不能修改类的数据成员;常量成员函数只能调用常量成员函数,不能调用非常量成员函数) 常量对象和非常量对象&#…

网络编程 lesson1 网络概念

目录 网络发展史(了解) 局域网和广域网 局域网 广域网 IP地址 IP地址划分(IPV4) IP地址取址范围: 特殊地址 子网掩码 子网号(注意和前面进行区分) 练习 练习1: 练习2&…

MySQL 数据库之 MMM 高可用架构构建

一、MMM 概述 1. 什么是 MMM   MMM(Master-Master replication manager for MySQL,MySQL 主主复制管理器)是一套支持双主故障切换和双主日常管理的脚本程序。MMM 使用 Perl 语言开发,主要从来监控和管理 MySQL Master-Master&a…

工厂模式中简单工厂模式、工厂方法模式、抽象工厂模式的分析与总结

工厂模式 工厂模式有许多变体,其中最常见的有三种 简单工厂模式工厂方法模式抽象工厂模式 简单工厂代码分析 UML图中我们可以清晰的看到代码结构 ,首先我们创建一个Car的汽车接口,定制汽车的基本规范,汽车可以的方法是可以跑,所以我们定义了一个抽象的run方法. 定义汽车接口…

【sed编辑器】

目录 一、sed编辑器二、sed的命令格式操作命令1.1、命令演示 二、替换三、插入 一、sed编辑器 1、sed是一种流编辑器,流编辑器会在编辑器处理数据之前基于预先提供的一组规则来编辑数据流。 2、sed编辑器可以根据命令来处理数据流中的数据,这些命令要么…

OSC Liblo Window10配置

OpenSoundControl一种网络通讯协议,想了解详情的自行打开网站。 liblo 是最知名的OSC库, 功能完整,用 C 和 LGPL 许可编写。 下载请前往GitHub库。 解压后安装过程如下,需要用到CMake: 1.选择源代码文件和构建工程的文…

一文读懂“生成式 AI”

一、前言 本文基于谷歌的:《Introduction to Generative AI》 并且借助 ChatGPT 整理而成,帮助大家理解生成式 AI 这个概念。 主要包括 4 个部分: 生成式 AI 的定义生成式 AI 的工作原理生成式 AI 模型的分类生成式 AI 的应用 二、生成式…

【数据结构】双向带头循环链表的实现

目录 全部代码 图例(双向带头循环链表) 各个功能的实现 创建该链表的节点 创建初始链表 链表的头插 链表的尾插 链表的随机插入 链表的头删 链表的尾删 链表的随机删除 链表的销毁 链表是否为空的判断 链表节点的创建 总结 全部代码 typ…

命令行更新Windows

命令行更新Windows powershell命令行更新安装 Windows Update module for Windows Powershell连接到 Windows Update 服务器并下载更新安装下载好的 Windows Update 更新 cmd执行Windows update更新检查更新下载 Windows Update 更新安装更新安装更新后重新启动设备 win10以下版…

Python中Pandas库的相关操作

目录 Pandas库 常用操作 创建DataFrame 查看数据 数据选择和过滤 数据排序和排名 缺失数据处理 数据聚合和分组 数据的合并和连接 Pandas库 Pandas是Python中常用的数据处理和分析库,它提供了高效、灵活且易于使用的数据结构和数据分析工具。 1.Series&a…

实例35---字符串反转,如将字符串 “www.runoob.com“ 反转为 “moc.boonur.www“。

文章目录 前言一、题目描述 二、题目分析 三、解题 1.解题方法一--- for循环来将字符的下标数值进行对每一个字符进行交换 ---程序运行代码 2.解题方法二------ 指针 ------ 程序运行代码(1)程序运行代码优化 总结 前言 本系列为C语言菜鸟100道基础经典例题详解刷题系列。点滴…

微服务:服务发现

1. 服务发现 eureka、nacos、Consul、etcd 和 zk 都是主流的服务发现工具,而 Dubbo 和 Polaris Mesh 则是基于服务发现的 RPC 框架。 它们的主要区别在于: eureka 是 Netflix 开源的一个服务发现组件,支持高可用和数据同步,具有…

如何使用Linkage Mapper揭示栖息地变化的故事

✅创作者:陈书予 🎉个人主页:陈书予的个人主页 🍁陈书予的个人社区,欢迎你的加入: 陈书予的社区 🌟专栏地址: Linkage Mapper解密数字世界链接 文章目录 引言1.1 定义和作用1.2 Linkage Mapper的历史和发展2.1 揭示栖息地变化的重要性2.2 Linkage Mapper的优势和不足