Webpack5 应用

news2024/10/6 19:17:50

文章目录

  • Webpack5 应用
    • 处理CSS文件
      • 使用css-loader和style-loader内联CSS
        • 安装
        • 配置webpack.config.js
        • 编写源代码
        • 编译打包
      • 使用css-loader和mini-css-extract-plugin外部链接CSS
        • 安装
        • 配置webpack.config.js
        • 编译打包
    • 处理图片资源
    • 自动清空上次打包内容

Webpack5 应用

处理CSS文件

使用css-loader和style-loader内联CSS

  • css-loader 将 CSS 文件转换成 JavaScript 模块,并解析其中的依赖关系。在模块构建完成后,webpack 会生成对应的 CSS 代码,并插入到 HTML 文件中。

  • style-loader 将解析完成的 CSS 代码注入到 HTML 文件的 <head> 中,通过<style>标签内联样式,使页面可以渲染样式。

安装

// 安装webpack
npm install --save-dev webpack-cli webpack
// 安装html插件
npm install --save-dev html-webpack-plugin
// 安装css-loader
npm install --save-dev css-loader
// 安装style-loader
npm install --save-dev style-loader

配置webpack.config.js

const path = require("path");
const HtmlWebpackPlugin = require("html-webpack-plugin");

module.exports = {
  mode: "development",
  entry: "./src/index.js",
  output: {
    path: path.resolve(__dirname, "dist"),
    filename: "[name].js",
  },
  module: {
    rules: [
      {
        test: /\.css$/,
        use: ["style-loader", "css-loader"],
      },
    ],
  },
  plugins: [
    new HtmlWebpackPlugin({
      template: "./index.html",
      filename: "index.html",
    }),
  ],
};

编写源代码

新建 index.html 文件,并写入:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <p>index</p>
  </body>
</html>

新建 src/index.css 文件,并写入:

body {
    background-color: red;
}

新建 src/index.js 文件,并写入:

import "./index.css";

编译打包

npm run webpack

编译完成后如下:

在这里插入图片描述

打开dist/index.html 可以看到CSS样式被内联到里面了。

使用css-loader和mini-css-extract-plugin外部链接CSS

  • mini-css-extract-plugin 插件可以将CSS代码提取成单独的文件,然后通过<link>标签引入到HTML中。

安装

npm install --save-dev mini-css-extract-plugin

配置webpack.config.js

const path = require("path");
const HtmlWebpackPlugin = require("html-webpack-plugin");
const MiniCssExtractPlugin = require("mini-css-extract-plugin");

module.exports = {
  mode: "development",
  entry: "./src/index.js",
  output: {
    path: path.resolve(__dirname, "dist"),
    filename: "[name].js",
  },
  module: {
    rules: [
      {
        test: /\.css$/,
        use: [MiniCssExtractPlugin.loader, "css-loader"],
      },
    ],
  },
  plugins: [
    new HtmlWebpackPlugin({
      template: "./index.html",
      filename: "index.html",
    }),
    new MiniCssExtractPlugin({
      filename: "css/[name].css",
    }),
  ],
};

编译打包

执行命令:

npm run webpack

编译完后生成如下:

在这里插入图片描述

处理图片资源

之前 Webpack4 ,处理图片资源需要通过 file-loaderurl-loader 进行处理。

现在 Webpack5 已经将两个 Loader 功能内置到 Webpack 里了,我们只需要简单配置即可处理图片资源。

const path = require("path");
const HtmlWebpackPlugin = require("html-webpack-plugin");
const MiniCssExtractPlugin = require("mini-css-extract-plugin");

module.exports = {
  mode: "development",
  entry: "./src/index.js",
  output: {
    path: path.resolve(__dirname, "dist"),
    filename: "[name].js",
    clean: true,
  },
  module: {
    rules: [
      {
        test: /\.css$/,
        use: [MiniCssExtractPlugin.loader, "css-loader"],
      },
      {
        test: /\.(png|jpe?g|gif)$/,
        type: "asset",
        parser: {
          dataUrlCondition: {
            // 小于10kb图片转base64
            maxSize: 10 * 1024,
          },
        },
        generator: {
          filename: "images/[name][ext]",
        },
      },
    ],
  },
  plugins: [
    new HtmlWebpackPlugin({
      template: "./index.html",
      filename: "index.html",
    }),
    new MiniCssExtractPlugin({
      filename: "css/[name].css",
    }),
  ],
};

自动清空上次打包内容

module.exports = {
  mode: "development",
  entry: "./src/index.js",
  output: {
    path: path.resolve(__dirname, "dist"),
    filename: "[name].js",
    // 在打包前,清空上次打包内容
    clean: true,
  }
};

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

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

相关文章

(9)Qt---网络编程

目录 1. 复习 1.1 UDP 与TCP 1.2 IP地址与端口号 2. 前期准备 3. 编程内容 1. 复习 1.1 UDP 与TCP UDP TCP 协议相同点&#xff1a;都存在于传输层 TCP&#xff08;即传输控制协议&#xff09;&#xff1a; 是一种面向连接的传输层协议&#xff0c;它能提供高可靠性通信(即…

[WiFi] WiFi 5G DFS机制及认证

DFS机制及认证 DFS是Dynamic Frequency Selection (DFS)&#xff0c;动态频率选择&#xff08;DFS&#xff09;是指允许未经许可的设备&#xff08;尤其是在室外操作的设备&#xff09;共享已分配给雷达系统的5GHz频段而不会对这些雷达造成干扰的机制。启用DFS功能后&#xff0…

PostGIS的安装与建库(Windows)

PostGIS的安装与建库(Windows) 文档目录 PostGIS的安装与建库(Windows)安装PostgreSQL安装PostGIS构建空间数据库 安装PostgreSQL 首先&#xff0c;以管理员身份运行 postgresql-13.5-1-windows-x64。(下面是安装包下载链接) 链接:https://pan.baidu.com/s/1vr6_zwOzW4UW6zwf6…

Backpropagation(反向传播)

是一种高效计算梯度下降的方法。 Chain Rule&#xff08;链式法则&#xff09; 定义了一个loss function是所有training data的loss之和。 考虑某一个neuron的情况 Forward Pass z对w的偏微分就是输入x。 Backward Pass Case1- Output Layer 假设两个红色的neuron已经是outpu…

声音合成——Foley Sound——DECASE项目——多模态智能感知与应用——课程学习(5)

文章目录 概述一、Approaches And Challenges生成的声音是什么类型训练模型使用的是什么特征原始音频Raw Audio频谱图Spectrograms 声音生成模型常用的结构生成模型的输入 二、Autoencoders Explained Easily自动编码器的通俗解释PCA和编码器的区别如何训练一个编码器Deep Auto…

深眸科技|机器视觉加速渗透各行各业,推进制造业智能制造进程

近年来&#xff0c;随着人工智能技术的不断发展&#xff0c;机器视觉技术作为其重要分支&#xff0c;加速渗透进我国制造业生产环节&#xff0c;覆盖从装配到检测等高端复杂领域&#xff0c;推进我国从制造大国迈向制造强国的进程。 机器视觉技术在工业生产过程中具有多种应用&…

域名历史查询工具-批量域名历史注册记录查询

批量备案域查询 在互联网时代&#xff0c;域名备案已经成为一项必要工作&#xff0c;但是批量备案域名是一项繁琐和费力的工作。为了帮助企业和个人轻松应对域名备案&#xff0c;出现了一种新型的解决方案——批量备案域名查询监控软件。 这种软件的最大优势是自动化&#xf…

域名备案批量查询工具-域名备案查询

为什么域名要备案 域名备案是一种互联网服务管理制度。其主要目的是加强互联网信息管理&#xff0c;维护网络安全和公共利益&#xff0c;规范网站的使用和运营行为。备案对于网站和域名的合法性和正常运营都具有重要的意义。没有备案的域名无法在大陆境内访问&#xff0c;并可…

linux发行家族和发行版及安装软件方式

在Linux平台下&#xff0c;软件包的类型可以划分为两类&#xff1a;源码包、二进制包&#xff1b; 一个软件要在Linux上执行&#xff0c;必须是二进制文件&#xff1b; 源码包&#xff1a;即程序软件的源代码&#xff08;一般也叫Tarball&#xff0c;即将软件的源码以tar打包后…

功能测试包含哪些测试?分别有什么作用?

功能测试包含哪些测试&#xff1f;功能测试主要包括链接测试、表单测试、搜索测试、删除测试、cookies、session测试、数据库测试等部分。功能测试对产品的各功能进行验证&#xff0c;根据功能测试用例&#xff0c;逐项测试&#xff0c;检查产品是否达到用户要求的功能。 功能…

WPS表格的IF与AND函数典型应用实例

HR人士在招聘时经常需要对面试人员进行三次面试都合格才给录取&#xff0c;如果单独使用一个IF函数没有办法进行三个成绩判断&#xff0c;这就需要使用IF函数结合AND函数配合起来使用。先看一下示例数据表&#xff0c;当初试、复试、终试三个成绩都大于80才返回录取。 先看一下…

第1章:项目管理概论

1、《项目管理知识体系指南》&#xff08;《指南》&#xff09;作为一部公认的项目管理标准&#xff0c;规定了在大多数时间适用于大多数项目的知识和做法。这些知识和做法&#xff1a; 答案&#xff1a;可供各种项目裁剪使用 2、《指南》是关于以下哪个的标准&#xff1f; …

ADS1299IPAGR 8通道、低噪声模拟前端,TPS7B7701QPWPRQ1单通道低压降稳压器(LDO)

ADS1299IPAGR 模拟前端&#xff08;AFE&#xff09;是8通道、低噪声、24位、同步采样Δ∑模数转换器 (ADC)。这些ADC配有内置可编程增益放大器 (PGA)、内部基准和板载振荡器。ADS1299-x集成了颅外脑电图 (EEG) 和心电图 (ECG) 应用所需的全部常用功能。凭借高集成度和卓越性能&…

TDengine 部署与使用----时序数据库

官网 通过 Docker 快速体验 TDengine | TDengine 文档 | 涛思数据 docker安装 拉取最新docker镜像 docker pull tdengine/tdengine:latest 然后执行 docker run -d -p 6030:6030 -p 6041:6041 -p 6043-6049:6043-6049 -p 6043-6049:6043-6049/udp tdengine/tdengine 查看容器…

VMware Aria Automation Config 8.12 - Aria Automation 的软件配置管理与安全性

VMware Aria Automation Config 8.12 - Aria Automation 的软件配置管理与安全性 请访问原文链接&#xff1a;https://sysin.org/blog/vmware-aria-automation-config/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;sysin.org Aria Aut…

Shell——正则表达式

正则表达式的作用 通常用于判断语句中&#xff0c;用来检查某一字符串是否满足某一格式 正则表达式的构成 正则表达式是由普通字符与元字符组成 普通字符包括大小写字母、数字、标点符号及一些其他符号 元字符是指在正则表达式中具有特殊意义的专用字符&#xff0c;可以用…

零基础入门测试该学什么?最全整理,照着学就对了

零基础入门测试该学什么&#xff1f;最全整理&#xff0c;照着学就对了 于很多小白而言&#xff0c;想要转行软件测试岗位&#xff0c;却又怕自己从来没有接触过计算机&#xff0c;底子很薄弱&#xff0c;从而还没开始就打起了退堂鼓。也有许多初学者&#xff0c;在入门的过程…

虚拟化技术介绍-VMware和Docker的区别

都说今天是一个云时代&#xff0c;其实云的本质就是由基础架构提供商提供基础架构&#xff0c;应用开发商不再关心基础架构。我们可以类比人类刚刚发明电的时候&#xff0c;工厂需要自己建电站&#xff0c;而现在只需要电线和插座就可以使用电。云时代让我们可以在分钟、甚至秒…

ASEMI代理ADI亚德诺ADUM3211TRZ-RL7原厂芯片

编辑-Z ADUM3211TRZ-RL7参数描述&#xff1a; 型号&#xff1a;ADUM3211TRZ-RL7 数据速率&#xff1a;10 Mbps 传播延迟&#xff1a;50 ns 脉冲宽度失真&#xff1a;3 ns 脉冲宽度&#xff1a;100 ns 输出上升/下降时间&#xff1a;2.5 ns 供电电流&#xff1a;2.6 mA …

Google Play应用广告系列的转化跟踪

设置和了解我们应用的转化对于广告投放的成功至关重要。依赖错误或虚假数据&#xff0c;很容易影响我们的目标和投资回报。 无论我们运行的是什么活动&#xff0c;要做的第一件事就是将主要转化与其成本相关联&#xff1a; 1&#xff0c;应用安装活动侧重于安装和 CPI 或每次…