Tengo un proyecto de Laravel y quiero agregar algunas líneas para las condiciones. Un archivo ubicado en la carpeta raíz del proyecto llamado module_statuses.json contiene variables JSON.
{ "Module1": true, "Module2": true, "Module3": false }En relación con estas variables JSON booleanas, quiero agregar/actualizar algunas líneas al final del archivo webpack.mix.js como se muestra a continuación.
const mix = require('laravel-mix'); const tailwindcss = require("tailwindcss"); require('laravel-mix-merge-manifest'); mix.options({ terser: { extractComments: false, } }) mix.js('resources/js/app.js', 'public/js') .vue() // These 2 lines should be conditional from module_statuses.json /////// .js('Modules/Module1/src/Resources/assets/js/module1.js', 'public/js') .js('Modules/Module2/src/Resources/assets/js/module2.js', 'public/js') .extract() .sass("resources/sass/app.scss", "public/css") .copy( 'node_modules/@fortawesome/fontawesome-free/webfonts', 'public/webfonts' ) .options({ processCssUrls: false, postCss: [tailwindcss("./tailwind.config.js")], }) .version();¿Cómo puedo hacer que esas líneas sean condicionales? ¿Alguna idea?
Primero, solicite su archivo JSON para acceder a las variables y sus valores. Luego puede hacer referencia a ellos fácilmente como el siguiente.
const mix = require('laravel-mix'); const tailwindcss = require('tailwindcss'); const status = require('./module_statuses'); require('laravel-mix-merge-manifest'); mix.options({ terser: { extractComments: false, } }) mix.js('resources/js/app.js', 'public/js') .vue() if (status.Module1) { mix.js('Modules/Module1/src/Resources/assets/js/module1.js', 'public/js') } if (status.Module2) { mix.js('Modules/Module2/src/Resources/assets/js/module2.js', 'public/js') } mix.extract() .sass('resources/sass/app.scss', 'public/css') .copy('node_modules/@fortawesome/fontawesome-free/webfonts','public/webfonts') .options({ processCssUrls: false, postCss: [tailwindcss('tailwind.config.js')], }) .version();