wabpack 打包资源动态分配地址 获取当前资源文件夹名称

24 篇文章 1 订阅
1 篇文章 0 订阅

打包目录结构
在这里插入图片描述
在这里插入图片描述
最开始打包多页面生成的dist 多个页面 但是资源会放到assets文件中所有的图片资源

开发时候的目录
![在这里插入图片描述](https://img-blog.csdnimg.cn/7da225902a904477b364a7ec97a8512b.png

这是页面目录

![在这里插入图片描述](https://img-blog.csdnimg.cn/c115ef91c61e4d3eba47cae1724940c9.png在这里插入图片描述

这里是图片资源 文件名跟多页面的目录是一样的

这里想打包的时候每个对应的页面的资源打包到自己的文件里去
也就是页面1的资源放到1的文件中 跟js,html文件放在同一个文件中 不是把所有的资源放到一个assets文件中
这里就要修改webpack的打包处理

在这里插入图片描述
修改webpack.base.js 文件

在这里插入图片描述
module下的rulse修改一下
filename 可以写函数返回值 拿到当前匹配的图片的当前路径
path.dirname(pathData.filename) 这是拿到了资源的前面全路径 再分割开拿到最后一个 就是你资源的文件名

  module: {
    rules: [
		{
		        test: /\.(png|svg|jpg|jpeg|gif|webp)$/i,
		        type: 'asset/resource',
		        generator: {
		          filename: (pathData) => {
		              const filepath = path.dirname(pathData.filename)
		                .split('/')
		              return filepath[filepath.indexOf('task') + 1] + '/images/[hash][ext][query]'
		          }
		        }
		      },
		      {
		        test: /\.(woff|woff2|eot|ttf|otf)$/i,
		        type: 'asset/resource',
		        generator: {
		          filename: (pathData) => {
		              const filepath = path.dirname(pathData.filename)
		                .split('/')
		              return filepath[filepath.indexOf('task') + 1] + '/font/[hash][ext][query]'
		          }
		        }
		      },
     ]
     }
     // filepath[filepath.indexOf('task') + 1] 是我拿到的文件名字 然后 font 或者 images也是个文件  都是自动创建的文件  hash ext query 都是用来给资源文件起的名称以防有相同的名称 

这样打包的时候资源文件就可以动态的打包到对应的文件里面去
这种做法是为了每个页面资源都在自己的文件里 可以单独下载文件

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值