【快速搞定Webpack5】处理样式资源(三)

news/2024/7/19 13:52:16 标签: 前端框架, 前端, js, webpack

本次内容我们将学习使用webpack如何处理css、less、sass、scss等样式资源
在这里插入图片描述

介绍

webpack本身是不能识别样式资源的,所以我们需要借助loader包来帮助webpack解析样式资源
我们找loader都应该去官方文档中查找对应的loader,然后学习使用。
官方文档找不到的话,可以从社区、GitHub中搜索查询

css-loader | webpack 中文文档

一、处理Css资源

1、下载对应包

npm i css-loader style-loader -D

Ps:注意需要下载两个loader

2、功能介绍

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

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

3、创建CSS资源

在根目录/src/css/index.css,中创建文件夹及文件,然后随便写一点css样式

.box1 {
    width: 100px;
    height: 100px;
    background-color: pink;
    margin: 10px;
}

4、配置

● 在src/main.js中引入前面创建的css文件

js">import count from "./js/count";
import sum from "./js/sum";
// 要想webpack打包该资源,必须引入该资源
import "./css/index.css"

css文件只需引入不需要调用和起函数名

● 在根目录下的 webpack.config.js中增加配置

json">// 加载器
    module: {
        rules: [
            // loader的配置
            {
                test: /\.css$/,     // 只检测.css文件
                use:[
                    // 执行顺序,从右到左,从下到上
                    "style-loader", // 将js中的css通过创建style标签添加到html文件中生效
                    "css-loader"    // 将css资源编译成commonJs的模块到js
                ],     
            },
        ],
    },

5、运行命令

npx webpack

6、html页面增加代码,查看页面效果

...
<body>
    <h1>Hello WebPack</h1>
    <br />
    <div class="box1"></div>
    <div class="box1"></div>
    <div class="box1"></div>
    <div class="box1"></div>
    <script src="../dist/main.js"></script>
</body>

...

在这里插入图片描述

二、处理 Less 资源

1、下载包

npm i less less-loader -D

2、功能介绍

less-loader:负责将less文件编译成css文件

3、添加less资源

● 在根目录/src/less/index.less,中创建文件夹及文件,然后随便写一点css样式

.box2 {
    width: 150px;
    height: 150px;
    background-color:tomato;
    margin: 5px;
    border-radius: 5px;
    float: left;
}

● 顺便在html中再增加几个 box2div

...

<body>
  <h1>Hello WebPack</h1>
  <br />
  <div class="box1"></div>
  <div class="box1"></div>
  <div class="box1"></div>
  <div class="box1"></div>
  <hr />
  <div class="box2"></div>
  <div class="box2"></div>
  <div class="box2"></div>
  <div class="box2"></div>
  <script src="../dist/main.js"></script>
</body>

...

4、配置

● 在src/main.js中引入前面创建的less文件

js">import count from "./js/count";
import sum from "./js/sum";
// 要想webpack打包该资源,必须引入该资源
import "./css/index.css"
import "./less/index.less"

● 在根目录下的 webpack.config.js中增加配置

js">const path = require("path");

module.exports = {
    // 入口
    entry: "./src/main.js",  // 需要用相对路径
    // 输出
    output: {
        // 文件的输出路径
        // __dirname nodejs的变量,代表当前文件的文件夹目录
        path: path.resolve(__dirname, "dist"),   // 需要用绝对路径 需要用的Nodejs的核心模块 path,专门处理路径问题
        // 文件名
        filename: "main.js",
    },
    // 加载器
    module: {
        rules: [
            // loader的配置
            {
                test: /\.css$/,     // 只检测.css文件
                use:[
                    // 执行顺序,从右到左,从下到上
                    "style-loader", // 将js中的css通过创建style标签添加到html文件中生效
                    "css-loader",    // 将css资源编译成commonJs的模块到js
                ],     
            },
            {
                test: /\.less$/,     // 只检测.less文件
                // loader: "xxx", // 配置中只能使用一个loader,use可以多个
                use:[
                    // 执行顺序,从右到左,从下到上
                    "style-loader", // 将js中的css通过创建style标签添加到html文件中生效
                    "css-loader",    // 将css资源编译成commonJs的模块到js
                    "less-loader",    // 将less资源编译成css
                ],
            },
        ],
    },
    // 插件
    plugins: [
        // plugin的配置
    ],
    // 模式
    mode: "development",
};

5、运行命令

npx webpack

6、html页面增加代码,查看页面效果

在这里插入图片描述


http://www.niftyadmin.cn/n/5385919.html

相关文章

170基于matlab的DNCNN图像降噪

基于matlab的DNCNN图像降噪&#xff0c;网络分为三部分&#xff0c;第一部分为ConvRelu&#xff08;一层&#xff09;&#xff0c;第二部分为ConvBNRelu&#xff08;若干层&#xff09;&#xff0c;第三部分为Conv&#xff08;一层&#xff09;&#xff0c;网络层数为17或者20层…

微信小程序 -- npm 支持

目录 npm 支持 1. 构建 npm 2. 自定义构建 npm 3. Vant 组件的使用方式 4. Vant 组件的样式覆盖 npm 支持 1. 构建 npm 目前小程序已经支持使用 npm 安装第三方包&#xff0c;但是这些 npm 包在小程序中不能够直接使用&#xff0c;必须得使用小程序开发者工具进行构建后才…

【算法 - 动态规划】最长回文子序列

上篇文章中&#xff0c;我们学习一个新的模型&#xff1a; 样本对应模型&#xff0c;该模型的套路就是&#xff1a;以结尾位置为出发点&#xff0c;思考两个样本的结尾都会产生哪些可能性 。 而前篇文章中的 纸牌博弈问题 属于 [L , R]上范围尝试模型。该模型给定一个范围&…

WordPress如何将后台右上角管理员头像去除并调整注销位置及启用注销确认功能?

WordPress后台默认情况下右上角可以看到管理员昵称和头像&#xff0c;将鼠标移动到该昵称上还会出现一个下拉菜单&#xff0c;点击下拉菜单中的“注销”无需我们再次确认就会自动退出。 现在我想将WordPress后台右上角的管理员头像和管理员昵称子菜单去除&#xff0c;并将“注销…

Maven 私服 Nexus3

一、Maven和Nexus3 简介 Maven是一个采用纯Java编写的开源项目管理工具&#xff0c;采用一种被称之为Project Object Model(POM)概念来管理项目&#xff0c;所有的项目配置信息都被定义在一个叫做POM.xml的文件中, 通过该文件Maven可以管理项目的整个生命周期&#xff0c;包括…

六、回归与聚类算法 - 线性回归

目录 1、线性回归的原理 1.1 应用场景 1.2 什么是线性回归 1.2.1 定义 1.2.2 线性回归的特征与目标的关系分析 2、线性回归的损失和优化原理 2.1 损失函数 2.2 优化算法 2.2.1 正规方程 2.2.2 梯度下降 3、线性回归API 4、回归性能评估 5、波士顿房价预测 5.1 流…

[FastDDS] 基于eProsima FastDDS的移动机器人数据中间件

[FastDDS] 基于eProsima FastDDS的移动机器人数据中间件 注明&#xff1a;无 本栏目主要讲述&#xff0c;基于eProsima FastDDS的移动机器人数据中间件的实现、使用、性能测试。 What is [ FastDDS ]: eProsima Fast DDS是DDS&#xff08;数据分发服务&#xff09;规范的C实现…

fastJSON 字符串转对象

一、fastJSON 包 dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.33</version> </dependency> 二、转普通对象 自定义对象A A aa JSONObject.parseObject("字符串", A.…