webpack - 如何让自定义 webpack 解析器将不存在的文件传递给加载器?
问题描述
我们有一堆使用 webpack 代码部署的视频文件(存储在 LFS 中)
我们已将它们移出 CDN,并希望在构建过程中使用带有 publicPath 的 webpack 文件加载器将它们转换为绝对 url。
Webpack barfs,因为该文件不存在。这是我尝试编写一个解析插件来跳过它们,但我仍然得到文件未找到错误....我错过了什么?
var VideoResolver = {
apply: function(resolver) {
const target = resolver.ensureHook("resolved");
resolver.getHook("module").tapAsync("VideoResolver", (request, resolveContext, callback) => {
if (request.request.startsWith("assets/videos") || request.request.endsWith(".mp4")) {
const resolved = {
path: request.request,
request: request.request,
query: request.query,
resolveToContext:{},
directory: !request.request.endsWith(".mp4")
};
console.log(resolved)
resolver.doResolve(
target,
resolved,
`skipping video resolve for ${request.request}`,
resolveContext,
callback
);
} else {
callback();
}
});
},
};
编辑: 看起来 NormalModule 和 LoaderRunner 读取文件的内容并将其传递给加载程序(这似乎是错误的命名:))。我看不到一种简单的方法来覆盖这种行为
解决方案
推荐阅读
- python - 为什么'issubclass(object,type)'给出错误(在python中)?
- javascript - 提供了不正确的登录详细信息
- go - 为什么闭包中本地分配的变量在外部分配时的工作方式不同?
- jquery - 如何实现折叠的主侧边栏悬停功能以在 adminLTE3 中显示树视图
- javascript - 如何从嵌套函数返回响应?
- excel - VBA 从 Web 获取数据,链接中有日期
- python - 无法安装 scikits.audiolab
- python - 替换字符串中的所有元素,除了python中的N、n和空格
- javascript - 语句为假时功能仍然有效
- java - 转换嵌套列表List
- > 成套