You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular+esbuild使用file loader导入JS文件获URL失败求助

Angular + esbuild 中使用 import attributes 导入JS文件为URL失败的问题

在搭配esbuild使用Angular时,借助angular-loader-import-attributes插件,可通过import attributes指定loader将资源导入为文件URL,例如:

import userImageURL from 'user.svg' with { loader: 'file' };

这种方式能正常获取到图片的URL。

现在需要给第三方库提供Web Worker的JS文件URL,我尝试用同样逻辑导入目标JS文件:

import imageCompressionWorkerURL from 'browser-image-compression/dist/browser-image-compression.js' with { loader: 'file' };

但实际得到的始终是该JS文件的默认导出模块,而非预期的文件URL。

我知道可以通过以下方式创建Worker:

const worker = new SharedWorker(new URL('some-worker', import.meta.url), { type: 'module' });

但目标第三方库只需要传入Worker文件的URL即可。目前我只能手动将该JS文件复制到输出目录,使用固定URL,但这种方式存在缓存问题,无法实现内容哈希来做缓存击穿。

另外,在Webpack环境中,我可以通过以下写法强制使用file-loader,抵消其他loader的影响:

import imageCompressionWorkerURL from '!file-loader!browser-image-compression/dist/browser-image-compression.js';

请问在Angular+esbuild的场景下,我哪里操作有误?

内容的提问来源于stack exchange,提问作者norekhov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 12:20:03