Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

136
Visualizações
Laravel Mix conditional compile

I have a Laravel project, and I want to add some lines for conditions. A file located in the project root folder named module_statuses.json contains JSON variables.

{
    "Module1": true,
    "Module2": true,
    "Module3": false
}

Related to these boolean JSON variables, I want to add/update some lines to the end of the webpack.mix.js file like the following.

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();

How can I make those lines conditional? Any idea?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

First, require your JSON file to access the variables and their values. Then you can reference them easily like the following.

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();
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda