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

devtools/2024/12/26 14:04:37/

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

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.ppmy.cn/devtools/145541.html

相关文章

Android 之 List 简述

一、简单创建方式 Android 开发中&#xff0c;列表有很多种类&#xff0c;如ArrayList、LinkedList、List、MutableList等&#xff0c;创建列表的方式如下所示&#xff1a; fun listDemo() {// 使用 listOf 创建不可变的空列表val list listOf<Int>()val list1 listOf…

常用的消息中间件都有哪些

在Java编程领域&#xff0c;消息中间件扮演着举足轻重的角色&#xff0c;它们为分布式系统提供了高效、可靠的异步通信机制。 1. RabbitMQ&#xff1a; • 这是一个源自AMQP&#xff08;高级消息队列协议&#xff09;的消息中间件。 • 它提供了丰富的消息路由、过滤和持久化功…

安卓project级别build.gradle和主module的build.gradle

以穿山甲为例讲解 如下图 gradle和gradle插件对应关系 Android Gradle 插件 8.7 版本说明 | Android Studio | Android Developers gradle对应在项目里的配置为 gradle插件对应的位置为

Docker怎么关闭容器开机自启,批量好几个容器一起操作?

环境&#xff1a; WSL2 docker v25 问题描述&#xff1a; Docker怎么关闭容器开机自启&#xff0c;批量好几个容器一起操作&#xff1f; 解决方案&#xff1a; 在 Docker 中&#xff0c;您可以使用多种方法来关闭容器并配置它们是否在系统启动时自动启动。以下是具体步骤和…

期权懂|如何减小个股期权交易中的风险?

锦鲤三三每日分享期权知识&#xff0c;帮助期权新手及时有效地掌握即市趋势与新资讯&#xff01; 如何减小个股期权交易中的风险&#xff1f; 一、选择合适的期权合约 &#xff08;1&#xff09;选择活跃的期权合约&#xff1a;投资者应优先选择交易活跃的期权合约。交易活跃的…

达梦数据库-主备集群部署

主备&#xff08;DW&#xff09;集群部署 主备集群为最基础的高可用架构&#xff0c;只有主库对外提供数据库服务&#xff0c;备库仅做备份&#xff0c;根据实际要求及网络条件&#xff0c;可以选择配置为自动切换或者手动切换模式&#xff0c;本次以手动切换模式举例。 1主1备…

RPA系列-uipath 学习笔记3

用uipath读取excel填写表单 所有素材都搬运自uipath academy 读取数据 现在手头上有这样一份数据 需要按行依次把数据填入到浏览器中的表单中&#xff0c;首先创建一个空的process 在activity中拉入excel process scope,同时在里面点击use_excel_file,选择你要使用的file,并…

代码随想录算法训练营第51期第28天 | 122. 买卖股票的最佳时机 II、55. 跳跃游戏、45. 跳跃游戏 II、1005.K次取反后最大化的数组和

122. 买卖股票的最佳时机 II 122. 买卖股票的最佳时机 IIhttps://leetcode.cn/problems/best-time-to-buy-and-sell-stock-ii/1.我刚刚看了一下之前用C写题的时候&#xff0c;自己说了句【我好像记得这道题是怎么写的&#xff0c;也不知道是福是祸】会心一笑&#xff0c;好像不…