1

我目前正在使用 GenerateSW 插件从以下位置生成服务工作者文件workbox-webpack-plugin

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 版本的决定与我无关。我可以sw.js在 webpack 运行后使用 babel 转译文件,但我想知道是否有办法让这个文件简单地自动转译(最好使用envwebpack 本身使用的相同信息)?

4

1 回答 1

3

假设您使用的是workbox-webpack-pluginv5+,您可以传入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...
}),
于 2020-05-01T13:52:50.807 回答