如何将 js 文件从 src 导入到 public folder/service worker 文件

How to import a js file from src to public folder/service worker file

我必须设置我的 firebase 配置以在我的 service worker 中初始化它,但我想将它与我的配置文件一起传递,因为我有多个项目,而哪个项目具有各自的 firebase 配置。我正在使用这个解决方案:

import project from '../src/config';
importScripts('https://www.gstatic.com/firebasejs/7.6.0/firebase-app.js');
importScripts('https://www.gstatic.com/firebasejs/7.6.0/firebase-messaging.js');

firebase.initializeApp(project.firebaseConfig);
const messaging = firebase.messaging();

但现在我收到了以下消息:

Uncaught SyntaxError: Cannot use import statement outside a module

有人知道解决这个问题的方法吗?

默认情况下,firebase 会尝试获取自己的 Service Worker,但 you can change it 使用 useServiceWorker。 使用此功能,您可以 select 自己的 Service Worker。

所以我设置了一个新的 Service Worker 来获取项目的名称,如下所示:

navigator.serviceWorker.register(`./firebase-messaging-sw-${project.name_project.toLowerCase()}.js`, {
      scope: '/firebase-cloud-messaging-push-scope'
    })

在我刚刚注册之后

.then(function (registration) {
      if (registration) {
        messaging.useServiceWorker(registration)
      }

我不得不在 public 文件夹中为我的每个项目创建一个 service worker,但是成功了。

希望对你也有帮助