解决Conflict: Multiple assets emit different content to the same filename manifest.json打包报错问题

问题场景:

vue2后台管理项目:打包时向manifest.json文件写入一个版本号

new WebpackAssetsManifest({
	// Options go here
	output: "manifest.json",
	writeToDisk: true,
	transform: (assets) => {
	   assets.version = new Date().getTime();
	   return assets;
	},
	done: (manifest) => {
	   let html = fs.readFileSync(
	     path.resolve(__dirname, "dist/index.html"),
	     { encoding: "UTF-8" }
	   );
	   html = html.replace(
	      "$__system__version__$",
	      JSON.stringify(manifest.toJSON())
	   );
	
	   fs.writeFileSync(
	       path.resolve(__dirname, "dist/index.html"), html, {encoding: "UTF-8",}
	   );
   },
}),        

项目部署后,使用接口获取该文件内的版本号。然后和index.html内的版本号进行对比

<script>
	window.__system__version__ = $__system__version__$;
</script>

问题描述

在这里插入图片描述


原因分析:

当多个资源尝试输出到相同的文件名manifest.json时。构建过程中,每个资源都会生成一个或多个文件,并且通常会有一个清单文件(如manifest.json)列出所有生成的文件。如果两个或更多资源都试图写入同一个manifest.json文件,就会发生冲突,导致这个错误。


解决方案:

网上看的最多的解决方案就是:
在这里插入图片描述

提示:但我发现是脚手架版本问题

在这里插入图片描述

  • 11
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值