Я пытаюсь создать PWA с автономной поддержкой, используя Laravel и Vue. js. Я использую плагин laravel -mix-workbox для настройки моего сервисного работника, но у меня огромное количество проблем, пытающихся выполнить sh, что должно быть простой задачей. У меня есть некоторые статические c ресурсы (изображения, XML файлы и c.), Которые обслуживаются из моего приложения, и я не могу получить рабочую коробку для добавления их в список предварительно кэшированных файлов.
Я попытался переместить ресурсы в / resources / img и добавить вызов copyDirectory, чтобы попытаться включить их, также я попробовал webpack-copy-plugin, но включены только скомпилированные ресурсы (js, css, шрифты и др. c). Вот мой файл webpack.mix. js:
const mix = require('laravel-mix');
//mp035 add workbox plugin and copy-webpack-plugin
require('laravel-mix-workbox');
const CopyPlugin = require('copy-webpack-plugin');
/*
|--------------------------------------------------------------------------
| Mix Asset Management
|--------------------------------------------------------------------------
|
| Mix provides a clean, fluent API for defining some Webpack build steps
| for your Laravel application. By default, we are compiling the Sass
| file for the application as well as bundling up all the JS files.
|
*/
//mp035 fix issue with laravel-mix outputting bad urls in precache manifest for app.js (//js/app.js) and app.css
// and copy assets into place (so they are in the build tree)
mix.webpackConfig({
output: {
publicPath: ''
},
plugins: [
new CopyPlugin([
{ from: 'resources/img/*', to: 'public/img', flatten:true },
{ from: 'resources/root/*', to: 'public', flatten:true },
]),
],
})
.js('resources/js/app.js', 'public/js')
.sass('resources/sass/app.scss', 'public/css')
.sourceMaps().version()
// mp035 add inject manifest plugin to inject workbox manifest into the service worker.
.injectManifest({
swSrc: './resources/pwa/service-worker.js',
maximumFileSizeToCacheInBytes: 20000000, // ******************************DEBUG ONLY!!!
});
Кто-нибудь знает, как я могу включить все файлы в моем / resources / img (или / public / img) в список предварительно кэшированных файлов?