webpack处理样式资源04--webpack入门学习

处理样式资源

本章节学习使用 Webpack 如何处理 Css、Less、Sass、Scss、Styl 样式资源

介绍

Webpack 本身是不能识别样式资源的,所以我们需要借助 Loader 来帮助 Webpack 解析样式资源

我们找 Loader 都应该去官方文档中找到对应的 Loader,然后使用官方文档找不到的话,可以从社区 Github 中搜索查询Webpack 官方 Loader 文档

处理 Css 资源


1. 下载包

npm i css-loader style-loader -D

注意:需要下载两个 loader

2. 功能介绍

  • css-loader:负责将 Css 文件编译成 Webpack 能识别的模块
  • style-loader:会动态创建一个 Style 标签,里面放置 Webpack 中 Css 模块内容

此时样式就会以 Style 标签的形式在页面上生效

3. 配置

const path = require("path");

module.exports = {
  entry: "./src/main.js",
  output: {
    path: path.resolve(__dirname, "dist"),
    filename: "main.js",
  },
  module: {
    rules: [
      {
        // 用来匹配 .css 结尾的文件
        test: /\.css$/,
        // use 数组里面 Loader 执行顺序是从右到左
        use: ["style-loader", "css-loader"],
      },
    ],
  },
  plugins: [],
  mode: "development",
};


4. 添加 Css 资源

  • src/css/index.css
.box1 {
  width: 100px;
  height: 100px;
  background-color: pink;
}
  • src/main.js
    import count from "./js/count";
    import sum from "./js/sum";
    // 引入 Css 资源,Webpack才会对其打包
    import "./css/index.css";
    
    console.log(count(2, 1));
    console.log(sum(1, 2, 3, 4));

  • public/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>webpack5</title>
      </head>
      <body>
        <h1>Hello Webpack5</h1>
        <!-- 准备一个使用样式的 DOM 容器 -->
        <div class="box1"></div>
        <!-- 引入打包后的js文件,才能看到效果 -->
        <script src="../dist/main.js"></script>
      </body>
    </html>

5. 运行指令

npx webpack

打开 index.html 页面查看效果

处理 Less 资源

1. 下载包

npm i less-loader -D

2. 功能介绍

  • less-loader:负责将 Less 文件编译成 Css 文件

3. 配置

const path = require("path");

module.exports = {
  entry: "./src/main.js",
  output: {
    path: path.resolve(__dirname, "dist"),
    filename: "main.js",
  },
  module: {
    rules: [
      {
        // 用来匹配 .css 结尾的文件
        test: /\.css$/,
        // use 数组里面 Loader 执行顺序是从右到左
        use: ["style-loader", "css-loader"],
      },
      {
        test: /\.less$/,
        use: ["style-loader", "css-loader", "less-loader"],
      },
    ],
  },
  plugins: [],
  mode: "development",
};


4. 添加 Less 资源

  • src/less/index.less
    .box2 {
      width: 100px;
      height: 100px;
      background-color: deeppink;
    }

  • src/main.js
    import count from "./js/count";
    import sum from "./js/sum";
    // 引入资源,Webpack才会对其打包
    import "./css/index.css";
    import "./less/index.less";
    
    console.log(count(2, 1));
    console.log(sum(1, 2, 3, 4));

  • public/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>webpack5</title>
      </head>
      <body>
        <h1>Hello Webpack5</h1>
        <div class="box1"></div>
        <div class="box2"></div>
        <script src="../dist/main.js"></script>
      </body>
    </html>

    5. 运行指令

    npx webpack

    打开 index.html 页面查看效果处理

Sass 和 Scss 资源

1. 下载包

npm i sass-loader sass -D

注意:需要下载两个

2. 功能介绍

  • sass-loader:负责将 Sass 文件编译成 css 文件
  • sass:sass-loader 依赖 sass 进行编译

3. 配置

const path = require("path");

module.exports = {
  entry: "./src/main.js",
  output: {
    path: path.resolve(__dirname, "dist"),
    filename: "main.js",
  },
  module: {
    rules: [
      {
        // 用来匹配 .css 结尾的文件
        test: /\.css$/,
        // use 数组里面 Loader 执行顺序是从右到左
        use: ["style-loader", "css-loader"],
      },
      {
        test: /\.less$/,
        use: ["style-loader", "css-loader", "less-loader"],
      },
      {
        test: /\.s[ac]ss$/,
        use: ["style-loader", "css-loader", "sass-loader"],
      },
    ],
  },
  plugins: [],
  mode: "development",
};


4. 添加 Sass 资源

  • src/sass/index.sass
    /* 可以省略大括号和分号 */
    .box3
      width: 100px
      height: 100px
      background-color: hotpink

  • src/sass/index.scss
    .box4 {
      width: 100px;
      height: 100px;
      background-color: lightpink;
    }

  • src/main.js
    import count from "./js/count";
    import sum from "./js/sum";
    // 引入资源,Webpack才会对其打包
    import "./css/index.css";
    import "./less/index.less";
    import "./sass/index.sass";
    import "./sass/index.scss";
    
    console.log(count(2, 1));
    console.log(sum(1, 2, 3, 4));

  • public/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>webpack5</title>
      </head>
      <body>
        <h1>Hello Webpack5</h1>
        <div class="box1"></div>
        <div class="box2"></div>
        <div class="box3"></div>
        <div class="box4"></div>
        <script src="../dist/main.js"></script>
      </body>
    </html>

5. 运行指令

npx webpack

打开 index.html 页面查看效果

处理 Styl资源

1. 下载包

npm i stylus-loader -D

2. 功能介绍

  • stylus-loader:负责将 Styl 文件编译成 Css 文件

3. 配置

const path = require("path");

module.exports = {
  entry: "./src/main.js",
  output: {
    path: path.resolve(__dirname, "dist"),
    filename: "main.js",
  },
  module: {
    rules: [
      {
        // 用来匹配 .css 结尾的文件
        test: /\.css$/,
        // use 数组里面 Loader 执行顺序是从右到左
        use: ["style-loader", "css-loader"],
      },
      {
        test: /\.less$/,
        use: ["style-loader", "css-loader", "less-loader"],
      },
      {
        test: /\.s[ac]ss$/,
        use: ["style-loader", "css-loader", "sass-loader"],
      },
      {
        test: /\.styl$/,
        use: ["style-loader", "css-loader", "stylus-loader"],
      },
    ],
  },
  plugins: [],
  mode: "development",
};

4. 添加 Styl 资源

  • src/styl/index.styl
    /* 可以省略大括号、分号、冒号 */
    .box 
      width 100px 
      height 100px 
      background-color pink

  • src/main.js
    import { add } from "./math";
    import count from "./js/count";
    import sum from "./js/sum";
    // 引入资源,Webpack才会对其打包
    import "./css/index.css";
    import "./less/index.less";
    import "./sass/index.sass";
    import "./sass/index.scss";
    import "./styl/index.styl";
    
    console.log(count(2, 1));
    console.log(sum(1, 2, 3, 4));

  • public/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>webpack5</title>
      </head>
      <body>
        <h1>Hello Webpack5</h1>
        <!-- 准备一个使用样式的 DOM 容器 -->
        <div class="box1"></div>
        <div class="box2"></div>
        <div class="box3"></div>
        <div class="box4"></div>
        <div class="box5"></div>
        <script src="../dist/main.js"></script>
      </body>
    </html>

5. 运行指令

npx webpack

打开 index.html 页面查看效果

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

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

相关文章

【0-1系列】从0-1快速了解搜索引擎Scope以及如何快速安装使用(下)

前言 近日&#xff0c;社区版家族正式发布V2024.5版本&#xff0c;其中&#xff0c;社区开发版系列重磅发布Scope开发版以及StellarDB开发版。 为了可以让大家更进一步了解产品&#xff0c;本系列文章从背景概念开始介绍&#xff0c;深入浅出的为读者介绍Scope的优势以及能力…

链表经典面试题--链表修至圆满

目录 1.环形链表 a.为什么一定会相遇&#xff0c;有没有可能会错过&#xff0c;永远追不上&#xff1f;请证明 b.slow一次走1步&#xff0c;fast走3步 4步 5步 n步还一定追得上吗 请证明 2.环形链表2 3.随机链表的复制 1.环形链表 141. 环形链表 - 力扣&#xff08;Lee…

【stm32-新建工程-寄存器版本】

stm32-新建工程-寄存器版本 ■ 下载相关STM32Cube官方固件包&#xff08;F1&#xff0c;F4&#xff0c;F7&#xff0c;H7&#xff09;■ 1. ST官方搜索STM32Cube■ 2. 搜索 STM32Cube■ 3. 点击获取软件■ 4. 选择对应的版本下载■ 5. 输入账号信息■ 6. 出现下载弹框&#xff…

【轨迹规划论文整理(1)】UAV轨迹规划的开山之作Minimum Snap Trajectory

【轨迹规划论文整理(1)】UAV轨迹规划的开山之作Minimum Snap Trajectory Generation and Control for Quadrotors 本系列主要是对精读的一些关于无人机、无人车的轨迹搜索论文的整理&#xff0c;包括了论文所拓展的其他一些算法的改进思路。 这是本系列的第一篇文章&#xff0…

人工智能发展历程了解和Tensorflow基础开发环境构建

目录 人工智能的三次浪潮 开发环境介绍 Anaconda Anaconda的下载和安装 下载说明 安装指导 模块介绍 使用Anaconda Navigator Home界面介绍 Environment界面介绍 使用Jupter Notebook 打开Jupter Notebook 配置默认目录 新建文件 两种输入模式 Conda 虚拟环境 添…

参数量Params和每秒浮点运算次数FLOPs的单位是多少

先看一下yolov8的表 模型计算量(FLOPs)和参数量(Params)是衡量深度学习算法复杂度的两个重要指标&#xff0c;它们可以用来评估一个模型的性能和实用性。以下是对这两个指标的理解&#xff1a; 1、Params - 参数量 即模型中需要学习的参数数量&#xff0c;它是衡量模型复杂度的…

Elsevier曝光73篇论文操纵同行评审,涉嫌操纵同行评审和人为引用

近日&#xff0c;全球知名学术出版商爱思唯尔&#xff08;Elsevier&#xff09;旗下期刊《Engineering Analysis with Boundary Elements》对73篇论文发出了关注声明&#xff0c;这些论文涉嫌操纵同行评审和人为引用。去年7月&#xff0c;该期刊前编委Masoud Afrand被指涉嫌论文…

第 7 章: 对象关系映射

在第 6 章中&#xff0c;我们大概了解了如何通过 JDBC 来进行简单的数据库操作。通过 SQL 来执行操作虽然不算复杂&#xff0c;但在面向对象的语言中&#xff0c;这类操作多少显得有些格格不入&#xff0c;毕竟我们都是在与“对象”打交道。把对象与关系型数据库关联起来&#…

VMare连接Centos7无法连接网络

VMare连接Centos7无法连接网络 打开ifcfg-ens33文件检查ONBOOT是否为yes&#xff0c;如果是no需要修改成yes vi /ect/syscong ig/network-scripts/ifcfg-ens33 保存后输入ip a命令&#xff0c;能看到自己的ip就是成功了 ip就是成功了

C++ | Leetcode C++题解之第165题比较版本号

题目&#xff1a; 题解&#xff1a; class Solution { public:int compareVersion(string version1, string version2) {int n version1.length(), m version2.length();int i 0, j 0;while (i < n || j < m) {long long x 0;for (; i < n && version1[…

leetCode-hot100-链表专题

leetCode-hot100-链表专题 链表简介单链表单链表的使用例题206.反转链表19.删除链表的倒数第N个结点24.两两交换链表中的节点25.K个一组翻转链表 双向链表双向链表的使用 循环链表61.旋转链表141.环形链表142.环形链表Ⅱ LinkedListLinkedList的使用 链表简介 参考博客&#x…

泛微开发修炼之旅--21关于泛微Ecology实现CAS服务端支持内网认证重定向至内网,外网认证重定向至外网的解决方案

文章详情链接&#xff1a;http://21关于泛微Ecology实现CAS服务端支持内网认证重定向至内网&#xff0c;外网认证重定向至外网的解决方案

秋招突击——6/16——复习{(单调队列优化DP)——最大子序和,背包模型——宠物小精灵收服问题}——新作{二叉树的后序遍历}

文章目录 引言复习&#xff08;单调队列优化DP&#xff09;——最大子序和单调队列的基本实现思路——求可移动窗口中的最值总结 背包模型——宠物小精灵收服问题思路分析参考思路分析 新作二叉树的后续遍历加指针调换 总结 引言 复习 &#xff08;单调队列优化DP&#xff09…

修改yarn、npm、pnpm为国内镜像源

国内由于网络的原因&#xff0c;使用官方的npm、yarn、pnpm访问下载依赖库会很慢&#xff0c;有时候还会出现无法访问的情况&#xff0c;这时候就需要我们给npm、yarn、pnpm换一个国内的镜像源的&#xff0c;一般的我们可以将镜像换成淘宝的源&#xff0c;由于平时比较常用到的…

Vue65-组件之间的传值

1、收数据 2、传数据 3、批量的数据替换 若是info里面有四个数据&#xff0c;传过来的dataObj里面有三个数据&#xff0c;则info里面也只有三个数据了 解决方式&#xff1a; 该写法还有一个优势&#xff1a;传参的时候&#xff0c;顺序可以随意&#xff01;

谈论实时摄像头的稳定性,防抖算法

&#x1f3c6;本文收录于「Bug调优」专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收藏&&…

C语言的基本输入输出函数+构造类型数据——数组

C语言的基本输入输出函数 1. 字符输入输出函数 getchar()、putchar() getchar()&#xff1a;从标准输入&#xff08;通常是键盘&#xff09;读取一个字符&#xff0c;并返回其ASCII值。putchar()&#xff1a;将指定的字符&#xff08;由其ASCII值表示&#xff09;写入标准输出…

模版与策略模式

一&#xff0c;怎么选择 如果需要固定的执行流程&#xff0c;选模版 如果不需要固定的执行流程&#xff0c;只需要对一个方法做具体抽象&#xff0c;选策略 参考文章&#xff1a; 常用设计模式汇总&#xff0c;告诉你如何学习设计模式 二&#xff0c;常用写法 子类 exten…

龙讯旷腾PWmat计算vdW异质结中热载流子冷却 | 复刻《Phys. Chem. Chem. Phys 》文献

01 NAMD 背景介绍 在各类光物理与光化学过程当中&#xff0c;均会牵涉到激发态载流子动力学过程&#xff0c;诸如电荷弛豫、复合以及输运等等。光激发或者电子注入将初始的平衡状态打破&#xff0c;所产生的热载流子在其演化进程中&#xff0c;会与原子核产生强烈耦合。此时&a…

关于车规级功率器件热可靠性测试的分享

随着中国电动汽车市场的稳步快速发展和各大车企布局新能源的扩散&#xff0c;推动了车规级功率器件的快速增长。新能源汽车行业和消费电子都会用到半导体芯片&#xff0c;但车规级芯片对外部环境要求很高&#xff0c;涉及到的一致性和可靠性均要大于工业级产品要求&#xff0c;…