Как правильно предоставить swDest?

Я установил workbox-cli

и используя конфигурацию ниже, расположенную в config.js

const {InjectManifest} = require('workbox-webpack-plugin');
const path = require('path');

module.exports = {
  webpack: function(config, env) {
    config.plugins.push(
      new InjectManifest({
        globPatterns: ['**/*.{js,css}'],
        swSrc: path.join('public', 'custom-service-worker.js'),
        swDest: 'service-worker.js',
        maximumFileSizeToCacheInBytes: 5000000,
      })
    );
    return config;
  }
} 

а затем бег

workbox generateSW config.js

я получил

Ваша конфигурация недействительна:

{"webpack": function (config, env) {\ n config.plugins.push (\ n new InjectManifest ({\ n> globPatterns: ['** / *. {js, css}'], \ n swSrc: path.join ('public', 'custom-service-> worker.js'), \ n swDest: 'service-worker.js', \ n maximumFileSizeToCacheInBytes:> 5000000, \ n}) \ n); \ n return config; \ n}, "swDest" [1]: - отсутствует -}

[1] Требуется swDest

Я не знаю, что еще делать, потому что я предоставляю swDest


person Siya    schedule 20.02.2020    source источник


Ответы (1)


С моей точки зрения, все выглядит нормально. Единственное, что приходит мне в голову, - это попробовать установить для publicPath значение ''. Я использую laravel-mix, так что это моя конфигурация.

mix.webpackConfig(webpack => {
    return {
        plugins: [
            new WorkboxPlugin.InjectManifest({
                swSrc: './public/sw.js',
                swDest: 'service-worker.js',
                maximumFileSizeToCacheInBytes: 5*1024*1024,
            })
        ],
        output: {
            publicPath: ''
        }
    };
});
person Tomáš Staník    schedule 27.02.2020