json - Webpack 4:如何在向名称添加哈希的同时复制 json 文件,并将其链接到 index.html
问题描述
我正在从 Webpack 3 升级到 Webpack 4。在 index.html 中,我有以下内容:
<link rel="manifest" href="<%= require('!file-loader?name=[path][name]-[hash:6].[ext]!static/manifest') %>">
但是,升级后它已停止工作。编译失败说:
模块解析失败:在“module.exports = __w ...”附近解析时,JSON 中位置 0 处的意外标记 m
似乎 Webpack 正在尝试解析 json 文件(可能两次),这不是我需要的(文档提到现在默认解析 json 文件)。不确定 'require' + file-loader 中的这种行为变化是设计使然还是错误。尝试使用 !!file-loader 会产生相同的结果。
另一种选择可能是将 copy-webpack-plugin 与 [hash] 一起使用,但是如何链接到 index.html 中的新名称?
解决方案
我可能会在这里找到您问题的答案。使用app-manifest-loader并更新您的require
声明:
<link rel="manifest" href="<%= require('manifest.webmanifest') %>">
然后将此规则添加到您的webpack.config.js
{
test: /(manifest\.webmanifest|browserconfig\.xml)$/,
use: [
{
loader: 'file-loader?name=[path][name]-[hash:6].[ext]'
},
{
loader: "app-manifest-loader"
}
]
}
此加载器还将解析清单文件并将所有图标加载到 Webpack 构建到 dist 文件夹
这里的重要部分是将清单扩展名从更改为.json
其他类似.webmanifest
推荐阅读
- c++ - 在 C++ 中使用 mix-ins 来实现接口契约的正确方法是什么?
- android - 开始时执行时间太长,然后整个调试停止
- python - 查找具有固定起点的组的 X 和 Y 之间的距离
- javascript - React 循环进度条不重复
- mule - Dataweave 2.0 reduce函数减少json Mule的数组
- php - 单独文件夹中的 Codeigniter 2.1.4 不起作用
- powerbi - 如何将有效的用户名身份验证属性添加到 Analysis Services Power BI 数据流实体?
- html - 图像的随机位置不应与 div 中的其他图像重叠
- c# - C# Setter 接口与继承接口的行为区别
- c# - Linq查询在C#中使用内连接和左连接连接三个表