¿Cómo excluyo carpetas y archivos específicos para cargarlos en S3 usando Laravel Mix y Webpack?
Probé esta solución https://laracasts.com/discuss/channels/laravel/laravel-mix-upload-files-to-s3 y https://medium.com/@avosalmon/cache-busting-using-laravel-mix -and-cloudfront-s3-eb222b569f88 pero no está haciendo lo que quiero hacer.
const mix = require('laravel-mix'); const S3Plugin = require('webpack-s3-plugin'); require('dotenv').config(); /* |-------------------------------------------------------------------------- | Mix Asset Management |-------------------------------------------------------------------------- | | Mix provides a clean, fluent API for defining some Webpack build steps | for your Laravel applications. By default, we are compiling the CSS | file for the application as well as bundling up all the JS files. | */ let webpackPlugins = []; if (mix.inProduction()) { webpackPlugins = [ new S3Plugin({ include: /.*\.(css|js|ico|jpg|png)$/, s3Options: { accessKeyId: process.env.AWS_ACCESS_KEY_ID, secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY, region: process.env.AWS_DEFAULT_REGION, // endpoint: process.env.AWS_ENDPOINT, }, s3UploadOptions: { Bucket: process.env.AWS_BUCKET, CacheControl: 'public, max-age=31536000' }, directory: 'public', }) ]; } mix.js('resources/js/alpine.js', 'public/js') .js('resources/js/choices.js', 'public/js') .js('resources/js/clipboard.js', 'public/js') .js('resources/js/notyf.js', 'public/js'); mix.postCss('resources/css/app.css', 'public/css', [ require("tailwindcss"), ]); mix.disableSuccessNotifications(); mix.webpackConfig({ plugins: webpackPlugins }); mix.version();Cuando ejecuto este código, carga todos los contenidos y carpetas con archivos css, js, ico, jpg y png. Sin embargo, quiero excluir una carpeta específica independientemente de si contiene archivos (css, js, ico, jpg y png).
Carpetas de ejemplo dentro del directorio público
Creo que puede usar CopyWebpackPlugin para mover sus archivos desde el directorio de compilación/estático a su destino compilado. No necesita colocar sus archivos en el directorio de origen, sino en una carpeta que copie: