我一直在阅读Vite文档,关于Web workers的部分提到使用“查询后缀”导入文件,这是我从未遇到过的,也不确定要搜索什么来了解更多信息。我不确定这是否是Node.js、Vite.js本身或内置于Vite中的插件。这是我所指的具体部分:
工作脚本还可以使用import语句而不是importScripts(),请注意,这在开发过程中依赖浏览器的本地支持,目前仅适用于Chrome,但在生产构建中会被编译掉。
默认情况下,工作脚本将作为单独的块发出到生产构建中。如果您希望将工作脚本作为base64字符串内联,请添加inline查询:
如果您希望将工作人员作为URL检索,可以添加url查询:
请参阅“工作人员选项”,了解有关配置所有工作人员捆绑的详细信息。
使用查询后缀导入
可以通过在导入请求中添加 ?worker 或 ?sharedworker 直接导入 Web Worker 脚本。默认的导出将是一个自定义的 worker 构造函数:
import MyWorker from './worker?worker'
const worker = new MyWorker()
工作脚本还可以使用import语句而不是importScripts(),请注意,这在开发过程中依赖浏览器的本地支持,目前仅适用于Chrome,但在生产构建中会被编译掉。
默认情况下,工作脚本将作为单独的块发出到生产构建中。如果您希望将工作脚本作为base64字符串内联,请添加inline查询:
import MyWorker from './worker?worker&inline'
如果您希望将工作人员作为URL检索,可以添加url查询:
import MyWorker from './worker?worker&url'
请参阅“工作人员选项”,了解有关配置所有工作人员捆绑的详细信息。
更新:
我找到了一个MDN页面关于import
,它似乎是我正在寻找的方向的一步,以及这个MDN页面关于import.meta
,它看起来很像我正在寻找的东西。我尝试着去跟随这个线索,但它并没有帮助我更好地理解这个 Vite 特性。
?worker
查询后缀是 Vite 的自定义实现吗?