403Webshell
Server IP : 103.175.220.74  /  Your IP : 216.73.216.151
Web Server : nginx/1.18.0
System : Linux p-floo-wj1-db 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User : deploy ( 1003)
PHP Version : 7.4.3-4ubuntu2.29
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /var/www/app/onega.id/erp/production/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/app/onega.id/erp/production/webpack.mix.js
const mix = require("laravel-mix");
const glob = require("glob");
const path = require("path");
const ReplaceInFileWebpackPlugin = require("replace-in-file-webpack-plugin");
const rimraf = require("rimraf");
require("laravel-mix-merge-manifest");

/*
 |--------------------------------------------------------------------------
 | 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.
 |
 */

// Compilation options
// base|metronic|core-third-party|custom
let compilationOptions = process.env.MIX_ASSET_BUILD_OPTIONS.split("|");

if (compilationOptions.includes("base")) {
    // Base
    // Including: vue, lodash, axios
    mix.js("resources/js/app.js", "public/base/js")
        .js("resources/js/config.js", "public/base/js")
        .sass("resources/sass/app.scss", "public/base/css")
        .mergeManifest();
}

if (compilationOptions.includes("metronic")) {
    // Metronic css/js
    mix.sass(
        "resources/metronic/sass/style.scss",
        "public/metronic/css/style.bundle.css",
        {
            sassOptions: {
                includePaths: ["node_modules"]
            }
        }
    )
        // .options({processCssUrls: false})
        .js("resources/js/scripts.js", "public/metronic/js/scripts.bundle.js")
        .mergeManifest();

    // Metronic css pages (single page use)
    (glob.sync("resources/metronic/sass/pages/**/!(_)*.scss") || []).forEach(
        file => {
            file = file.replace(/[\\\/]+/g, "/");
            mix.sass(
                file,
                file
                    .replace("resources/metronic/sass", "public/metronic/css")
                    .replace(/\.scss$/, ".css")
            ).mergeManifest();
        }
    );

    // Metronic js pages (single page use)
    (glob.sync("resources/metronic/js/pages/**/*.js") || []).forEach(file => {
        mix.js(
            file,
            `public/${file.replace("resources/metronic/", "metronic")}`
        ).mergeManifest();
    });

    // Metronic media
    mix.copyDirectory(
        "resources/metronic/media",
        "public/metronic/media"
    ).mergeManifest();

    // Metronic theme
    (glob.sync("resources/metronic/sass/themes/**/!(_)*.scss") || []).forEach(
        file => {
            file = file.replace(/[\\\/]+/g, "/");
            mix.sass(
                file,
                file
                    .replace("resources/metronic/sass", "public/metronic/css")
                    .replace(/\.scss$/, ".css")
            ).mergeManifest();
        }
    );

    // Webpack.mix does not copy fonts, manually copy
    (
        glob.sync("resources/metronic/plugins/**/*.+(woff|woff2|eot|ttf)") || []
    ).forEach(file => {
        var folder = file.match(/resources\/metronic\/plugins\/(.*?)\//)[1];
        mix.copy(
            file,
            `public/plugins/global/fonts/${folder}/${path.basename(file)}`
        );
    });

    (
        glob.sync(
            "node_modules/+(@fortawesome|socicon|line-awesome)/**/*.+(woff|woff2|eot|ttf)"
        ) || []
    ).forEach(file => {
        var folder = file.match(/node_modules\/(.*?)\//)[1];
        mix.copy(
            file,
            `public/plugins/global/fonts/${folder}/${path.basename(file)}`
        );
    });

    mix.sass(
        "resources/plugins/plugins.scss",
        "public/plugins/global/plugins.bundle.css"
    )
        .then(() => {
            // remove unused preprocessed fonts folder
            rimraf(path.resolve("public/fonts"), () => { });
            rimraf(path.resolve("public/images"), () => { });
        })
        .sourceMaps(!mix.inProduction())
        // .setResourceRoot('./')
        .options({
            processCssUrls: false
        })
        .js(
            ["resources/plugins/plugins.js"],
            "public/plugins/global/plugins.bundle.js"
        )
        .mergeManifest();

    mix.webpackConfig({
        plugins: [
            new ReplaceInFileWebpackPlugin([
                {
                    // rewrite font paths
                    dir: path.resolve("public/plugins/global"),
                    test: /\.css$/,
                    rules: [
                        {
                            // fontawesome
                            search: /url\((\.\.\/)?webfonts\/(fa-.*?)"?\)/g,
                            replace: "url(./fonts/@fortawesome/$2)"
                        },
                        {
                            // flaticon
                            search: /url\(("?\.\/)?font\/(Flaticon\..*?)"?\)/g,
                            replace: "url(./fonts/flaticon/$2)"
                        },
                        {
                            // flaticon2
                            search: /url\(("?\.\/)?font\/(Flaticon2\..*?)"?\)/g,
                            replace: "url(./fonts/flaticon2/$2)"
                        },
                        {
                            // keenthemes fonts
                            search: /url\(("?\.\/)?font\/(Ki\..*?)"?\)/g,
                            replace: "url(./fonts/keenthemes-icons/$2)"
                        },
                        {
                            // lineawesome fonts
                            search: /url\(("?\.\.\/)?fonts\/(la-.*?)"?\)/g,
                            replace: "url(./fonts/line-awesome/$2)"
                        },
                        {
                            // socicons
                            search: /url\(("?\.\.\/)?font\/(socicon\..*?)"?\)/g,
                            replace: "url(./fonts/socicon/$2)"
                        }
                    ]
                }
            ])
        ]
    });
}

if (compilationOptions.includes("base-third-party")) {
    // 3rd party plugins css/js
    // Including: element-ui, devextreme-datagrid

    mix.copy(
        "node_modules/devextreme/dist/css/icons/dxicons.woff2",
        "public/plugins/devextreme/datagrid/icons/dxicons.woff2"
    );

    mix.copy(
        "node_modules/element-ui/lib/theme-chalk/fonts/element-icons.ttf",
        "public/plugins/onega-ui/fonts/element-icons.ttf"
    );

    mix.copy(
        "node_modules/element-ui/lib/theme-chalk/fonts/element-icons.woff",
        "public/plugins/onega-ui/fonts/element-icons.woff"
    );

    // Custom 3rd party plugins
    (glob.sync("resources/plugins/custom/**/*.js") || []).forEach(file => {
        mix.js(
            file,
            `public/${file
                .replace("resources/plugins/custom", "plugins")
                .replace(".js", ".bundle.js")}`
        );
    });

    (glob.sync("resources/plugins/custom/**/*.scss") || []).forEach(file => {
        mix.sass(
            file,
            `public/${file
                .replace("resources/plugins/custom", "plugins")
                .replace(".scss", ".bundle.css")}`
        ).mergeManifest();
    });
}

// ONEGA UI Only
if (compilationOptions.includes("onega-ui")) {
    mix.copy(
        "node_modules/element-ui/lib/theme-chalk/fonts/element-icons.ttf",
        "public/plugins/onega-ui/fonts/element-icons.ttf"
    );

    mix.copy(
        "node_modules/element-ui/lib/theme-chalk/fonts/element-icons.woff",
        "public/plugins/onega-ui/fonts/element-icons.woff"
    );

    (glob.sync("resources/plugins/custom/devextreme/{datagrid,scheduler}/*.js") || []).forEach(
        file => {
            mix.js(
                file,
                `public/${file
                    .replace("resources/plugins/custom", "plugins")
                    .replace(".js", ".bundle.js")}`
            );
        }
    );

    (glob.sync("resources/plugins/custom/onega-ui/*.js") || []).forEach(
        file => {
            mix.js(
                file,
                `public/${file
                    .replace("resources/plugins/custom", "plugins")
                    .replace(".js", ".bundle.js")}`
            );
        }
    );

    (glob.sync("resources/plugins/custom/onega-ui/*.scss") || []).forEach(
        file => {
            mix.sass(
                file,
                `public/${file
                    .replace("resources/plugins/custom", "plugins")
                    .replace(".scss", ".bundle.css")}`
            ).mergeManifest();
        }
    );
}

Youez - 2016 - github.com/yon3zu
LinuXploit