【问题标题】:Workbox - how to have the service worker file transpiled by webpack?Workbox - 如何让 webpack 转译 service worker 文件?
【发布时间】:2020-08-15 22:48:24
【问题描述】:

我目前正在使用来自workbox-webpack-plugin 的 GenerateSW 插件生成一个服务工作者文件:

new GenerateSW({
    cacheId: 'foo',
    clientsClaim: true,
    inlineWorkboxRuntime: true,
    runtimeCaching: [
         {
              urlPattern: /^https:\/\/fonts\.googleapis\.com.*/,
              handler: 'StaleWhileRevalidate',
         },
    ],
    skipWaiting: true,
    sourcemap: false,
    swDest: 'sw.js',
}),

生成的sw.js 文件包含由注入其中的GenerateSW 插件生成的代码。但是,这段代码没有被转译,我需要它,因为谷歌关于将它写入哪个 ecmascript 版本的决定与我无关。我可以在 webpack 运行后使用 babel 转译 sw.js 文件,但我想知道是否有办法让这个文件简单地自动转译(最好使用与 webpack 本身相同的 env 信息)?

【问题讨论】:

    标签: webpack workbox workbox-webpack-plugin


    【解决方案1】:

    假设你使用的是workbox-webpack-plugin v5+,你可以pass in babelPresetEnvTargets来配置生成的Service Worker的转译过程。

    new GenerateSW({
      // Use the Array<string> syntax from
      // https://babeljs.io/docs/en/babel-preset-env#targets
      babelPresetEnvTargets: ['chrome >= 80'],
    
      // ...other options...
    }),
    

    【讨论】:

      猜你喜欢
      • 2021-01-14
      • 2021-03-17
      • 2021-07-10
      • 2019-09-03
      • 1970-01-01
      • 2019-12-08
      • 2023-03-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多