webpack 原理及使用

【点赞收藏加关注,前端技术不迷路~】

一、webpack基础

1.核心概念

1)entry:定义入口,webpack构建的第一步

module.exports ={entry:'./src/xxx.js'
}

2)output:出口(输出)

3)loader:模块加载器,用户将模块的原内容按照需求加载成新内容

        比如文本加载器raw-loader(安装:npm add raw-loader -d;)

在webpack中,引用 .js文件、.json文件时不需要定义加载器,是webpack内置功能。因为webpack就是为了cjs结构来打包的。因为支持cjs,所以只支持js,json。除这两种文件,webpack不知道如何加载,需要指定加载器:webpack.config.js

module: {rules: [{ test: /\.txt$/, use:'raw-loader' }]// 指定.txt文件使用文本加载器raw-loader来打包
}

4)plugin:插件

        扩展插件,在webpack构建过程的特定时机注入扩展逻辑,用来改变或优化构建结果

        比如html出口打包插件html-webpack-plugin(安装:npm add html-webpack-plugin -d;)

        使用插件需要引入:const HtmlWebpackPlugin = require('html-webpack-plugin');

plugins: [new HtmlWebpackPlugin({ template: "./src/index.html" });
],

        将src/index.html作为dist/index.html输出文件的模板,并将打包的main.js以延迟加载defer的方式引入html;

5)mode:打包环境,通过选择development、production或none之中的一种,来设置mode参数

        mode可以启用webpack内置的,在相应环境下的优化,默认值是production。

6)DevServer:开发服务器

        提供了一个基本的web server,并具有live reloading(实时重新加载)功能;

                1.静态服务比如:图片

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

5.1 动⼿实现⼀个 LLaMA2 ⼤模型

Meta(原Facebook)于2023年2月发布第一款基于Transformer结构的大型语言模型LLaMA,并于同年7月发布同系列模型LLaMA2。5.1.1 定义超参数自定义一个ModelConfig类,来存储和记录超参数,这里继承了PretrainedConfig类&…

【Python】自动化GIT提交

在日常开发中,我们经常需要频繁地向 Git 仓库提交代码。虽然 git add、git commit、git push 这几个命令并不复杂,但重复操作容易出错,也浪费时间。本文将介绍如何使用 Python 脚本自动化完成 Git 提交流程,让开发更高效&#xff…

LeetCode 85. 最大矩形

预备知识 84.柱状图中最大的矩形:题目链接 思路:在求柱状图最大面积时,我们可以枚举每一根柱子,并且假设这根柱子就是最大面积中最低的那一根柱子。由于最大面积的选中的柱子中,矩形的高取决于最低的柱子&#xff0c…

Java Collections工具类

Collections 类:Java 中提供的一组静态方法&#xff0c;用于操作集合。常用方法: 1. 排序 Collections.sort(List<T> list) 对指定列表进行升序排序。 Arrays.asList 将一个数组转化为一个List集合 List<Integer> numbers Arrays.asList(5, 2, 8, 1); Collections…

MCU+RTOS调试

1. 引言在做项目时&#xff0c;百分之三十的时间写代码&#xff0c;还有百分之70的时间用于调试。本期将以Keil为例进行调试章节的讲解&#xff0c;目的在于做出一个标准化的调试步骤&#xff0c;方便大家学习如何调试代码。内容分为基础调试、中级调试及进阶调试三部分&#x…

基于STM32F103的FM1702驱动程序

基于STM32F103微控制器与复旦微电子FM1702SL射频读卡芯片的驱动开发方案&#xff0c;整合了硬件配置、寄存器操作和通信协议实现&#xff1a;一、硬件连接设计 1. 管脚映射表FM1702SL引脚STM32F103引脚功能说明VDD3.3V电源输入GNDGND地线SCKPA5(SPI1_SCK)SPI时钟MISOPA6(SPI1_M…

Zabbix 6.0 监控AWS全栈实战|EC2至Lambda的无缝监控

一、云监控架构挑战与突破传统云监控痛点&#xff1a; ❌ 多区域/多账户资源分散难统一 ❌ 无服务器环境监控盲区&#xff08;Lambda/API Gateway&#xff09; ❌ 云账单爆炸式增长Zabbix-AWS解决方案&#xff1a;三层监控体系&#xff1a;基础设施层&#xff1a;EC2/EBS/VPC&a…

深入Go并发编程:Channel、Goroutine与Select的协同艺术

在现代软件开发中&#xff0c;并发编程已成为提升程序性能和响应能力的关键。Go语言作为一门为并发而生的现代编程语言&#xff0c;其简洁而强大的并发模型&#xff0c;特别是goroutine和channel&#xff0c;为开发者提供了优雅的并发解决方案。本文将深入探讨Go并发编程的核心…

nvim编辑器

安装lazy.nvim -- 在 ~/.config/nvim/init.lua 中添加以下代码 -- 设置 leader 键&#xff08;推荐空格&#xff09; vim.g.mapleader " "-- 加载 lazy.nvim local lazypath vim.fn.stdpath("data") .. "/lazy/lazy.nvim" if not vim.loop.fs_…

Android启动时间优化大全

1 修改Android mksh默认的列长度 不修改这个参数&#xff0c;adb shell后&#xff0c;输入超过80个字符&#xff0c;就不能看到完整的命令行。external/mksh/src/sh.h EXTERN mksh_ari_t x_cols E_INIT(80); EXTERN mksh_ari_t x_lins E_INIT(24);2 Kernel优化 2.1 内核驱动模块…

JavaScript核心概念全解析

目录 1. 作用域 (1) 局部作用域 (2) 全局作用域 2. 垃圾回收 (1) 引用计数法 (2) 标记清除法 3. 闭包 (1) 作用 (2) 风险 4. 变量提升 (1) var (2) let 和 const (3) const 5. 函数提升 (1) 函数声明 (2) 函数表达式 6. 函数参数 (1) 动态参数 (2) 剩余参数…

Red靶机攻略

一.环境准备 1.1Red靶机环境准备 1.1.1首先将我们解压好的的jangow-01-1.0.1.ova放入虚拟机里&#xff0c;并配置环境。安装好靶机后打开进行配置&#xff0c;按住shift&#xff0c;在界面按e进去得到图二。 1.1.2按住ctrlx&#xff0c;ip a查看网卡信息,修改网络配置文件 /e…