【问题标题】:Listener inside IIFE/function (not in global scope) in ManifestV3 service worker?ManifestV3 服务工作者中的 IIFE/函数(不在全局范围内)内的侦听器?
【发布时间】:2022-08-16 01:43:08
【问题描述】:

Manifest v3 服务工作者需要在文件的全局范围内定义侦听器,webpack 编译到匿名函数内部。这两件事似乎基本不相容。有没有人有比放弃 webpack 更好的解决方案?

    标签: javascript webpack google-chrome-extension scope chrome-extension-manifest-v3


    【解决方案1】:

    没有这样的要求,这是documentation 中的错误/不准确声明:“脚本的顶层”是对用于描述 JS 引擎内部的技术术语的歪曲。

    实际需求在 JS 事件循环的第一个任务的主(同步)阶段注册监听器,这肯定会发生在函数内部:

    (() => {
      (() => {
        chrome.runtime.onMessage.addListener(msg => { /* ..... */ });
      })();
    })();
    

    【讨论】:

    • 哦,好的,我明白了,谢谢,我在 Manifest v3 聊天中也见过你,所以感谢你为公共知识做出贡献!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-20
    • 2018-08-17
    • 1970-01-01
    • 2012-02-18
    • 2014-12-24
    • 2019-01-26
    相关资源
    最近更新 更多