2

问题如下(来自 ServiceWorkers API 的一些限制): ServiceWorkers API 目前不支持导入 ES6(在 Chrome 80 中会,但在当前稳定版本 79 中不支持。这意味着需要更多人们更新手机和浏览器的时间超过一年)。

我必须导入一些将在 ServiceWorker 中使用的自定义 ES6 类。

使用它的默认配置,Quasar 将在运行时提供一个/service-worker.js文件,quasar dev或者在运行时构建一个文件quasar build。Quasar 可能会自动转换您的文件custom-service-worker.js,但遗憾的是它不会。以下段落解释了为什么不这样做。

(更具体地说,我正在构建一个 PWA。)Quasar 的坏处在于它为此目的在GoogleChrome/workbox内部使用(Workbox 的功能对项目来说非常好,但正如大多数 Google 产品所发生的那样,它的支持很差,它有 1 -2 大缺点)。请参阅:https ://github.com/GoogleChrome/workbox/issues/1513 所以,Quasar 在幕后使用他们的workbox-webpack-plugin. 它由名为 GenerateSW 和 InjectManifest 的两个类组成。 它们都不能以从 ES6 到 ES5 的自动转换的方式进行配置。

我的解决方案显然是创建另一个 NPM\Webpack 配置并使用它来构建这些文件,而不会以任何方式干扰 Quasar 的配置。

后者的主要缺点是,我必须手动构建(在 Quasar 之外)我在 ServiceWorker 中导入的这些自定义 ES6 类(在它们被转译之后)。即它打破了Quasar 的自然流程(例如只使用qasar devand quasar build),并且这些文件将在很长一段时间内处于积极开发中(因此会大大阻碍开发)。

我发现很难找到重新配置的起点。配置 Webpack 非常复杂,我没有太多时间去修改它,所以 Quasar 的上下文使它变得更加复杂。

如何让 Quasar 编译特定的 ES6 JavaScript 文件并以它的服务方式为它们提供服务app.jsclient-entry.js以及import-quasar.js?有没有这样的方法(如果有它会立即解决我的问题workbox-webpack-plugin)?关于 Quasar 或 Webpack 的任何建议?

4

0 回答 0