簡體   English   中英

Laravel 混合條件編譯

[英]Laravel Mix conditional compile

我有一個 Laravel 項目,我想為條件添加一些行。 位於項目根文件夾中名為module_statuses.json的文件包含 JSON 變量。

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

與這些 boolean JSON 變量相關,我想在 webpack.mix.js 文件的末尾添加/更新一些行,如下所示。

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

我怎樣才能使這些行有條件? 任何想法?

首先,需要您的 JSON 文件來訪問變量及其值。 然后您可以像下面這樣輕松地引用它們。

const mix = require('laravel-mix');
const tailwindcss = require('tailwindcss');
require('laravel-mix-merge-manifest');
const status = require('./module_statuses.json');

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM