当前位置: 首页 > article >正文

修改输出资源的名称和路径、自动清空上次打包资源

一、修改输出资源的名称和路径

1.1 配置

const path = require("path");

module.exports = {
  // 入口【相对路径】
  entry: './src/main.js',
  // 输出
  output: {
    // 文件的输出路径【绝对路径】
    // __dirname 当前文件的文件夹的绝对路径
    path: path.resolve(__dirname, 'dist'),
    // 入口文件打包输出的文件名称
    filename: 'static/js/main.js',

  },
  // 加载器
  module: {
    rules: [
      // loader 的配置
      // css样式
      {
        test: /\.css$/i,// 只检测.css文件
        use: [// 执行顺序:从右到左,从下到上
          'style-loader',// 将js中css通过创建style标签添加到html文件中生效
          'css-loader',// 将css资源编译成commonjs的模块到js中
        ]
      },
      // less样式
      {
        test: /\.less$/i,// 只检测.css文件
        use: [// 执行顺序:从右到左,从下到上
          'style-loader',// 将js中css通过创建style标签添加到html文件中生效
          'css-loader',// 将css资源编译成commonjs的模块到js中
          'less-loader',// 将less文件编译成css文件
        ]
      },
      // sass样式
      {
        test: /\.s[ac]ss$/i,// 只检测.css文件
        use: [// 执行顺序:从右到左,从下到上
          'style-loader',// 将js中css通过创建style标签添加到html文件中生效
          'css-loader',// 将css资源编译成commonjs的模块到js中
          'sass-loader',// 将sass文件编译成css文件
        ]
      },
      // stylus样式
      {
        test: /\.styl$/i,// 只检测.css文件
        use: [// 执行顺序:从右到左,从下到上
          'style-loader',// 将js中css通过创建style标签添加到html文件中生效
          'css-loader',// 将css资源编译成commonjs的模块到js中
          'stylus-loader',// 将Styl文件编译成css文件
        ]
      },
      {
        test: /\.(png|jpe?g|gif|webp|svg)$/,
        type: 'asset',
        parser: {
          dataUrlCondition: {
            // 小于10kb的图片会转成base64
            // 优点:减少请求数量;缺点:体积会变大
            maxSize: 10 * 1024
          }
        },
        generator: {
          // 输出图片的名称
          /*
            static/images/: 指定了输出文件的基础目录为 static/images/
            [hash:10]: hash值取前8位
            [ext]: 保留原文件的扩展名
            [query]: 保留原文件的查询字符串部分
          */
          filename: "static/iamges/[hash:8][ext][query]"
        }
      }
    ]
  },
  // 插件
  plugins: [
    // plugin的配置
  ],
  /* 
    模式:
      开发模式:development
      生产模式:production
  */
  mode: "development"
}

1.2 修改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>
    <div class="box5"></div>
    <!-- 修改 js 资源路径 -->
    <script src="../dist/static/js/main.js"></script>
  </body>
</html>

1.3 运行指令

npx webpack

注意:需要将上次打包生成的文件清空,再重新打包才有效果。

此时输出文件目录为: 

├── dist
    └── static
         ├── imgs
         │    └── 7003350e.png
         └── js
              └── main.js

 二、自动清空上次打包资源

主要修改地方就是:clean: true,

const path = require("path");

module.exports = {
  // 入口【相对路径】
  entry: './src/main.js',
  // 输出
  output: {
    // 文件的输出路径【绝对路径】
    // __dirname 当前文件的文件夹的绝对路径
    path: path.resolve(__dirname, 'dist'),
    // 入口文件打包输出的文件名称
    filename: 'static/js/main.js',
    // 自动清空上次打包结果
    // 原理:在打包前,将上述配置的path整个目录内容清空,再进行打包
    clean: true,
  },
  // 加载器
  module: {
    rules: [
      // loader 的配置
      // css样式
      {
        test: /\.css$/i,// 只检测.css文件
        use: [// 执行顺序:从右到左,从下到上
          'style-loader',// 将js中css通过创建style标签添加到html文件中生效
          'css-loader',// 将css资源编译成commonjs的模块到js中
        ]
      },
      // less样式
      {
        test: /\.less$/i,// 只检测.css文件
        use: [// 执行顺序:从右到左,从下到上
          'style-loader',// 将js中css通过创建style标签添加到html文件中生效
          'css-loader',// 将css资源编译成commonjs的模块到js中
          'less-loader',// 将less文件编译成css文件
        ]
      },
      // sass样式
      {
        test: /\.s[ac]ss$/i,// 只检测.css文件
        use: [// 执行顺序:从右到左,从下到上
          'style-loader',// 将js中css通过创建style标签添加到html文件中生效
          'css-loader',// 将css资源编译成commonjs的模块到js中
          'sass-loader',// 将sass文件编译成css文件
        ]
      },
      // stylus样式
      {
        test: /\.styl$/i,// 只检测.css文件
        use: [// 执行顺序:从右到左,从下到上
          'style-loader',// 将js中css通过创建style标签添加到html文件中生效
          'css-loader',// 将css资源编译成commonjs的模块到js中
          'stylus-loader',// 将Styl文件编译成css文件
        ]
      },
      {
        test: /\.(png|jpe?g|gif|webp|svg)$/,
        type: 'asset',
        parser: {
          dataUrlCondition: {
            // 小于10kb的图片会转成base64
            // 优点:减少请求数量;缺点:体积会变大
            maxSize: 10 * 1024
          }
        },
        generator: {
          // 输出图片的名称
          /*
            static/images/: 指定了输出文件的基础目录为 static/images/
            [hash:10]: hash值取10位
            [ext]: 保留原文件的扩展名
            [query]: 保留原文件的查询字符串部分
          */
          filename: "static/iamges/[hash:10][ext][query]"
        }
      }
    ]
  },
  // 插件
  plugins: [
    // plugin的配置
  ],
  /* 
    模式:
      开发模式:development
      生产模式:production
  */
  mode: "development"
}


http://www.kler.cn/a/451940.html

相关文章:

  • 将Minio设置为Django的默认Storage(django-storages)
  • 每日一题 343. 整数拆分
  • 事件抽取tr、ti、ar 和 ai的意思(触发词、事件类型、事件参数、参数的类型)
  • 【C++】B2066救援题目分析和解决讲解
  • 企业数字化转型中的“烟囱效应”:从小烟囱到大烟囱的折中之道
  • Linux程序设计(第四版)| 学习笔记
  • 【C 语言】内存节省机制
  • 深入理解.NET内存回收机制
  • 【论文复现】进行不同视角图像的拼接
  • python如何求欧几里得
  • VMware虚拟机中CentOS系统/dev/mapper/centos-home分区扩容指南
  • 稳定的碰一碰发视频、碰一碰矩阵源码技术开发,支持OEM
  • 2024年12月25日Github流行趋势
  • 【卷积神经网络】常用评价指标总结
  • 使用 C# 代码计算数学表达式
  • 代码随想录算法日记day16 | 513.找树左下角的值、112. 路径总和、106.从中序与后序遍历序列构造二叉树
  • xilinx 芯片使用vivado导出pindelay文件——FPGA学习笔记24
  • 【C语言程序设计——选择结构程序设计】预测你的身高(头歌实践教学平台习题)【合集】
  • 《系统动力学模型构建与Vensim仿真》01系统动力学概述与行为模式
  • 基于Spring Boot的高校请假管理系统
  • VS2022 无法使用GitHub账户登录/无法使用copilot 解决方案
  • 设计模式之外观模式:从电脑组装到系统架构的简化之道
  • 软考:系统架构设计师教材笔记(持续更新中)
  • 记录一个SVR学习
  • 【全开源】Java多语言tiktok跨境商城TikTok内嵌商城送搭建教程
  • uniApp打包H5发布到服务器(docker)