const path = require('path') const mix = require('laravel-mix') require('laravel-mix-polyfill') require('laravel-mix-clean') let assetDir = 'assets' let polyfill = { enabled: true, useBuiltIns: "usage", // legacy targets from gulp file targets: ['last 3 version', 'safari 5', 'ie 8', 'opera 12.1', 'ios 6', 'android 4'] } mix.webpackConfig({ mode: process.env.NODE_ENV, resolve: { alias: { '@': path.resolve('resources/assets'), 'vue$': 'vue/dist/vue.runtime.esm.js', } }, // Pour debug compilation errors // stats: { // children: true, // warningsFilter: [ // /\-\-underline\-color/, // ] // }, }) mix.options({ fileLoaderDirs: { fonts: `${assetDir}/fonts`, images: `${assetDir}/images` }, postCss: [ require('postcss-discard-comments')({ removeAll: true }) ], }) mix.clean({ cleanOnceBeforeBuildPatterns: [ 'css/*', 'js/*', 'assets/*', ] }) // mix Backend mix.js('resources/js/app.js', 'public/js') .vue({ runtimeOnly: true, extractStyles: true, globalStyles: false }) .sass('resources/sass/app.scss', 'public/css') .sass('resources/sass/bootstrap.scss', 'public/css') .polyfill(polyfill) .sourceMaps(false) // Copy Blade Images Assets mix.copyDirectory('resources/assets', 'public/assets') // fontawesome compile mix.copy('node_modules/@fortawesome/fontawesome-free/js/all.min.js', 'public/js/fontawesome.min.js') .copy('node_modules/@fortawesome/fontawesome-free/css/fontawesome.min.css', 'public/css/fontawesome.min.css');