webpack基础---常用loader

webpack 命令式和配置文件

html-webpack-plugin

配置项:{

        templete:

        filename:

        inject:

}

清除上次打包的文件,output: {

clear: true

}

mode选项:

none

development

prodution

souce-map:可以精准定位代码行数

{

        devtool: 'inline-source-map'

}

npx webpack --watch: 当代码发生变化时,不需要手动重新启动,但是还要手动刷新页面

webpack-dev-server

当代码发生变化时,不需要手动重新启动,并且浏览器自动刷新

资源模块

处理图片:将图片编译为一个地址

处理font字体

modules: {

        rules: {

                text: /\.png$/,

                type: 'asset/resource',

                generator: {

                        filename: 'image/[hash][ext]'

                }

}

处理图片:将图片编译为base64

modules: {

        rules: {

                text: /\.png$/,

                type: 'asset/inline',

                generator: {

                        filename: 'image/[hash][ext]'

                }

}

处理text文件:导出源文件

modules: {

        rules: {

                text: /\.png$/,

                type: 'asset/source',

}

处理图片:

modules: {

        rules: {

                text: /\.png$/,

                type: 'asset',

                parse: {

                        dataUrlCondition: {

                                maxsize: 4 * 1024 * 1024// 当资源大于4m,生成url,低于4M,生成base64

                        }

                }

}

处理样式loader

css-loader: 把css文件转换为浏览器可以识别的代码

style-loader:把生成得文件放在html文件的header中

css文件抽离和压缩

抽离:mini-css-extract-plugin

使用抽离插件之后,会生成一个单独的文件,并在html文件中用link引入

压缩:css-minimizer-webpack-plugin

配置项不是在plugin中,而是在optimization对象中配置

optimization: {

        minimizer: [

                new cssMinimizerWebpackPlugin()// 在生产环境下生效

        ]

}

处理xml文件:xml-loader //生成一个对象

处理csv、tsv文件:csv-loader //生成一个数组

bable-loader:

将es6转化为es5,如果低版本浏览器不识别es6,就需要用到bable-loader

代码分离

1、在入口处配置多个入口,并且需要把共享的代码提取出来

2、动态导入,import(重点总结)

3、预获取,预加载

4、

输出文件名称

output: {

        filename: [name][contenthash].js   // 因为hash有自己的生成规则,所以只有当文件内容发生变化时才会重新加载,否则使用缓存

}

缓存第三方库

将第三方库提取到单独的chunk文件中,

公共路径

在output对象里进行配置,publicpath

环境变量:

如果想使用环境变量,需要将配置写成函数,函数有个参数env

js压缩

terser-webpack-plugin

devtool配置是否开启source-map

配置文件拆分

可以将配置文件拆分为生产和开发两个文件夹

npm 脚本

可以把启动和打包脚本写在script中,直接运行 npm run 脚本命令即可

webpack公共内容提取之后可以利用webpack-merge包来合并到一起

dev-server

1、配置跨域

2、配置https

3、配置header

4、配置端口号

模块热替换和热更新

eslint

安装之后,可以通过npx eslint  需要检查的路径,或者是通过安装vscode插件eslint帮忙检查eslint错误

eslint和webpick一起使用,需要配置loader

git 提交时需要将eslint配置上

可以使用工具husky实现

配置路径的标识符,在resolve对象中配置alias

extensions文件的加载顺序

外部扩展

依赖图查看插件:webpack-bundle-analyzer

postcss和css模块

postcss loader的配置以及在package.json文件中的浏览器的配置

也可以在postcss.config.js文件中进行插件配置

在配置css文件的时候可以开启模块化,这样不会造成类名重复问题

web works

ts的使用

ts-loader

tsconfig.json

多页面配置(后面详细讲解)

tree-shaking

sideEffects:

true

false

[]

渐进式网络应用程序 PWA

work-webpack-plugin插件

预制全局变量

全局Exports

使用

适用于第三方模块

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

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

相关文章

【Android学习】简易计算器的实现

1.项目基础目录 新增dimens.xml 用于控制全部按钮的尺寸。图片资源放在drawable中。 另外 themes.xml中原来的 <style name"Theme.Learn" parent"Theme.MaterialComponents.DayNight.DarkActionBar">变为了&#xff0c;加上后可针对button中增加图片…

发卡授权盗u系统源码ZHU

2024最新UI发卡盗U/支持多语言/更新UI界面/支持多个主流钱包去除后门板&#xff0c; 搭建系统TGaqxm01&#xff0c;最好是部署智能合约后用合约地址来授权包含转账支付页面盗U授权源码。 完美提U&#xff0c;教程包含如何提u 。功能完美。 1.Php静态 2.目录puicta 3.扩sal 4.s…

Spring Boot中使用Redis和Lua脚本实现延时队列

码到三十五 &#xff1a; 个人主页 延时队列是一种常见的需求。延时队列允许我们延迟处理某些任务&#xff0c;这在处理需要等待一段时间后才能执行的操作时特别有用&#xff0c;如发送提醒、定时任务等。文中&#xff0c;将介绍如何在Spring Boot环境下使用Redis和Lua脚本来实…

吴恩达机器学习笔记 三十七 电影推荐系统 使用特征 成本函数 协同过滤算法

以电影评分系统为例&#xff0c;令 r(i, j) 来表示用户 j 已经对电影 i 评分&#xff0c; y&#xff08;i, j&#xff09;表示评分具体是多少。 假如每部电影有自己的特征&#xff0c;那么用户 j 对电影 i 的评分预测为 w(j) * x(i) b(j) r(i, j) &#xff1a;一个用户 j 是否…

global IoT SIM解决方案

有任何关于GSMA\IOT\eSIM\RSP\业务应用场景相关的问题&#xff0c;欢迎W: xiangcunge59 一起讨论, 共同进步 (加的时候请注明: 来自CSDN-iot). Onomondo提供的全球IoT SIM卡解决方案具有以下特点和优势&#xff1a; 1. **单一全球配置文件**&#xff1a;Onomondo的SIM卡拥…

Flink checkpoint 源码分析- Checkpoint barrier 传递源码分析

背景 在上一篇的博客里&#xff0c;大致介绍了flink checkpoint中的触发的大体流程&#xff0c;现在介绍一下触发之后下游的算子是如何做snapshot。 上一篇的文章: Flink checkpoint 源码分析- Flink Checkpoint 触发流程分析-CSDN博客 代码分析 1. 在SubtaskCheckpointCoo…

Vue3+ts(day05:ref、props、生命周期、hook)

学习源码可以看我的个人前端学习笔记 (github.com):qdxzw/frontlearningNotes 觉得有帮助的同学&#xff0c;可以点心心支持一下哈&#xff08;笔记是根据b站上学习的尚硅谷的前端视频【张天禹老师】&#xff0c;记录一下学习笔记&#xff0c;用于自己复盘&#xff0c;有需要学…

开源AI智能名片S2B2C商城系统:移动技术的深度整合与应用

在数字化营销的新时代&#xff0c;开源AI智能名片S2B2C商城系统通过深度整合移动技术MAC ID、Beacon和DSP&#xff0c;为企业带来了前所未有的营销机遇。这一系统不仅提高了营销效率&#xff0c;还极大地提升了客户体验&#xff0c;并有效降低了营销成本。下面&#xff0c;我们…

【JAVA基础之反射】反射详解

&#x1f525;作者主页&#xff1a;小林同学的学习笔录 &#x1f525;mysql专栏&#xff1a;小林同学的专栏 1.反射 1.1 概述 是在运行状态中&#xff0c;对于任意一个类&#xff0c;都能够知道这个类的所有属性和方法&#xff1b; 对于任意一个对象&#xff0c;都能够调用它…

SQL注入漏洞扫描---sqlmap

what SQLMap是一款先进的自动执行SQL注入的审计工具。当给定一个URL时&#xff0c;SQLMap会执行以下操作&#xff1a; 判断可注入的参数。判断可以用哪种SQL注入技术来注入。识别出目标使用哪种数据库。根据用户的选择&#xff0c;读取哪些数据库中的数据。 更详细语法请参考…

BJFUOJ-C++程序设计-实验3-继承和虚函数

A TableTennisPlayer 答案&#xff1a; #include<iostream> #include<cstring> using namespace std;class TableTennisPlayer{ private:string firstname;string lastname;bool hasTable;public:TableTennisPlayer(const string &, const string &, bool…

leetCode65. 有效数字

leetCode65. 有效数字 题目思路 代码 class Solution { public:bool isNumber(string s) {int l 0, r s.size() - 1;// 1.忽略前后的空格while(l < r && s[l] ) l;while(l < r && s[r] ) r--;if(l > r) return false;s s.substr(l,r - l 1)…

Git的基本操作和使用

git分支指令 列出所有本地分支 git branchmaster是绿的 前面有个 表示当前分支是master* 列出所有远程分支 git branch -r列出所有本地分支和远程分支 git branch -a新建一个分支&#xff0c;但依然停留在当前分支 git branch [branch-name]新建一个分支&#xff0c;并切…

httpcanary抓包某游戏思路及教程[第1期]

游戏介绍&#xff1a; 这期在线读档0花购买教程&#xff0c;存档版教程。下一期在线购买无限鲜花累计充值安卓全系统适配修改教程。 小白勿入&#xff0c;技术流资料 网盘自动获取 链接&#xff1a;https://pan.baidu.com/s/1lpzKPim76qettahxvxtjaQ?pwd0b8x 提取码&#x…

设计模式动态代理

什么是设计模式? 一个问题通常有n种解法&#xff0c;其中肯定有一种解法是最优的&#xff0c;这个最优的解法被人总结出来了&#xff0c;称之为设计模式。 设计模式有20多种&#xff0c;对应20多种软件开发中会遇到的问题。 关于设计模式的学习&#xff0c;主要学什么&#…

onedrive下載zip檔案有20G限制,如何解決

一般來說&#xff0c;OneDrive網頁版對文件下載大小的限制如下圖所示&#xff0c;更多資訊&#xff0c;請您參考這篇文章&#xff1a;OneDrive 和 SharePoint 中的限制 - Microsoft Support 因此我們推薦您使用OneDrive同步用戶端來同步到本地電腦&#xff0c;您也可以選擇只同…

MFC 列表控件删除实例(源码下载)

1、本程序基于前期我的博客文章《MFC下拉菜单打钩图标存取实例&#xff08;源码下载) 》 2、程序功能选中列表控件某一项&#xff0c;删除按钮由禁止变为可用&#xff0c;点击删除按钮&#xff0c;选中的项将删除。 3、首先在主界面添加一个删除参数按钮。 4、在myDlg.cpp 文件…

巨人网络发布2023年年报:全力拥抱AI浪潮,开启游戏产业新篇章

易采游戏网5月3日消息&#xff0c;国内知名游戏公司巨人网络发布了其2023年度财务报告&#xff0c;报告显示&#xff0c;公司在过去一年中积极拥抱AI技术&#xff0c;实现了业绩的稳步增长&#xff0c;为游戏产业带来了新的活力与机遇。 在报告中&#xff0c;巨人网络详细阐述了…

【C++】STL简介

&#x1f525;个人主页&#xff1a; Forcible Bug Maker &#x1f525;专栏&#xff1a; C 目录 前言什么是STL&#xff1f;STL的历史STL的版本STL六大组件STL的优缺点STL的优点&#xff1a;STL的缺点&#xff1a; 如何学习STL结语 前言 本篇博客主要内容&#xff1a;STL简介。…

240503-关于Unity的二三事

240503-关于Unity的二三事 1 常用快捷键 快捷键描述CtrlP播放/停止Ctrl1打开Scene窗口Ctrl2打开Game窗口Ctrl3打开Inspect窗口Ctrl4打开Hierarchy窗口Ctrl5打开Project窗口Ctrl6打开Animation窗口 2 关联VisualStudio2022 3 节约时间&#xff1a;将最新声明的参数移动到最上…