Webpack day-2

一、Webpack 自动生成 html 文件

插件 html-webpack-plugin 在 Webpack 打包时生成 html 文件,并在文件中自动引入 js 文件

快速开始

1.安装插件

    npm install html-webpack-plugin --save-dev

2.将插件添加到 webpack.config.js 配置文件中

    // 下载完成之后将模块加载进来
    const HtmlWebpackPlugin = require('html-webpack-plugin');
    const path = require('path');

    module.exports = {
        // ...
        // 插件配置 
        plugins: [
            // 配置 webpack.config.js
            new HtmlWebpackPlugin({
                // 会直接在项目根目录下寻找,这里用path是防止路径报错
                template:path.resolve(__dirname, 'public/index.html'),
                // 默认是在 dist 文件下创建,这里用path是防止路径报错
                filename:path.resolve(__dirname, 'dist/index.html')
            })
        ],
    };

3.接下来就可以打包看效果啦

dist 根目录会出现 html 文件,已经压缩成功

在这里插入图片描述

二、Webpack 打包 CSS 代码(如果不想将 CSS 打包到 JS 中的方法可以跳过)

加载器 css-loader 解析 css 代码到 JS 中

加载器 style-loader 将解析的 css 代码导入 Dom 中

快速开始

1.安装加载器

    npm i css-loader style-loader --save-dev

2.需要和你的入口文件产生关联

    import './index.css'; 

3.将加载器添加到 webpack.config.js 配置文件中

    // ...
    module.exports = {
        // ...
        module: {
            // 这里是固定写法
            rules: [
                {
                    // /\.css$/ 以 css 为结尾的文件
                    // i 不区分大小写
                    test: /\.css$/i,
                    // 从后往前执行,顺序不能颠倒
                    use: ["style-loader", "css-loader"],
                },
            ],
        },
    };

4.接下来就可以打包看效果啦

在 js 出口文件里加载者着 css 代码,这样会使 js 体积变得很大

三、如果由于某种原因你需要将 CSS 提取为一个文件(即不要将 CSS 存储在 JS 模块中)

插件 mini-css-extract-plugin 提取 css 代码

好处:css 文件可以被浏览器缓存,减少 js 文件体积

注: style-loader 和 mini-css-extract-plugin 一起使用

这个插件运用了 webpack v5 新特性,与 extract-text-webpack-plugin 相比:

  • 异步加载
  • 没有重复的编译(性能)
  • 更容易使用
  • 特别针对 CSS 开发

快速开始

1.安装插件

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

2.将插件添加到 webpack.config.js 中

    const MiniCssExtractPlugin = require("mini-css-extract-plugin");

    module.exports = {
        // ...
        plugins: [
            // ...
            new MiniCssExtractPlugin()
        ],
        module: {
            rules: [
                {
                    // /\.css$/ 以 css 为结尾的文件
                    // i 不区分大小写
                    test: /\.css$/i,
                    // 从后往前执行,顺序不能颠倒
                    use: [MiniCssExtractPlugin.loader, "css-loader"],
                },
            ],
        },
    };

3.接下来就可以打包看效果啦

dist 根目录会有一个 main.css 样式表,但是里面的内容并没有压缩

在这里插入图片描述

4.解决了打包 CSS 的问题但是还没有解决压缩的问题,我们需要再次导入一个插件

    npm install css-minimizer-webpack-plugin --save-dev

5.将插件添加到 webpack.config.js 中

    const MiniCssExtractPlugin = require("mini-css-extract-plugin");
    const CssMinimizerPlugin = require("css-minimizer-webpack-plugin");

    module.exports = {
        module: {
            rules: [
                {
                    test: /.css$/,
                    // 从后往前执行,顺序不能颠倒
                    use: [MiniCssExtractPlugin.loader, "css-loader"],
                },
            ],
        },
        optimization: {
            minimizer: [
                // 在 webpack@5 中,你可以使用 `...` 语法来扩展现有的 minimizer(即 `terser-webpack-plugin`),将下一行取消注释
                `...`,
                new CssMinimizerPlugin(),
            ],
        },
        plugins: [new MiniCssExtractPlugin()],
    };

6.接下来就可以打包看效果啦

在这里插入图片描述

四、打包 less 代码

加载器 less-loader 把 less 代码编译为 css 代码

快速开始

1.安装解析器

    npm i less less-loader --save-dev

2.和你的入口文件产生关联

    import './index.less'

3.将解析器添加到 webpack.config.js 中

    // ...
    module.exports = {
        module: {
            // ...
            rules: [
                {
                    // 所有 less 结尾的文件
                    test: /\.less$/i,
                    // 从后往前执行,顺序不能颠倒
                    use: [
                        // 如果不想将 CSS 打包到 JS 中的方法可以使用上面学习的 MiniCssExtractPlugin 插件
                        // 'style-loader',

                        // 生成单独的css文件
                        MiniCssExtractPlugin.loader
                        'css-loader',
                        'less-loader',
                    ],
                },
            ],
        },
    };

如果我们有 css 和 less 两种样式表需要将两种分开写打包规则如图:

在这里插入图片描述

4.接下来就可以打包看效果啦

在这里插入图片描述

他会将 css 和 less 一起打包并放入一个 css 文件

五、打包图片

资源模块 是一种模块类型,它允许使用资源文件(字体,图标等)而无需配置额外 loader

在 webpack 5 之前,通常使用:

我这里使用的是 Webpack v5,在 css 中我引入了背景图片,打包时虽然图片打包成功,前端页面也也可以正常显示,但是不能自定义输出路径,所以需要我们接着继续配置 webpack.config.js 文件

Webpack v5 内置了资源模块,所以无需下载

1.配置 webpack.config.js

    module.exports = {
        module: {
            // ...
            rules: [
                {
                     // /\.(png|jpg|gif)$/ 以 png/ipg/gif 为结尾的文件
                    test: /\.(png|jpg|gif)$/i,
                    // 打包类型:自动判定打包方式
                    // 大于 8kb 文件:发送一个单独的文件并导出 URL 地址
                    // 小于 8kb 文件:导出一个 data URL(base64字符串)
                    type: 'asset',
                    // 设置图片出口 dist根目录static文件
                    /**
                     * [hash][ext][query] 占位符
                     * hash 对内容进行算法计算,得到映射的数字字母组合
                     * ext 使用内容之前的占位符,如:.png/.jpg等
                     * query 保留引入文件时的代码中查询参数(只有 URL 下生效)
                     */
                    generator: {
                        filename: 'static/[hash][ext][query]'
                    }
                }
            ],
        },
    };

2.接下来就可以打包看效果啦

在这里插入图片描述

在这里插入图片描述

  • 51
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要安装Webpack,首先需要确保你已经安装了Node.js和npm。然后按照以下步骤进行安装: 1. 打开命令行工具(如cmd或终端),运行以下命令来全局安装webpack-cli: ``` npm i webpack-cli -g ``` 2. 确认安装成功,可以在命令行工具中运行以下命令来检查webpack版本: ``` webpack -v ``` 3. 接下来,在你的项目文件夹中打开命令行工具,运行以下命令来安装本地的Webpack: ``` npm i webpack --save-dev ``` 4. 现在你可以使用Webpack来进行前端资源的加载和打包了。 请注意,以上是基本的Webpack安装方法。如果你想要了解更多关于Webpack的知识,可以参考Webpack官网提供的文档和教程。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [安装webpack的完整步骤](https://blog.csdn.net/heyy1997/article/details/121645002)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Webpack安装教程](https://blog.csdn.net/s_y_w123/article/details/88353493)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值