|
|
|
let mix = require( 'laravel-mix' );
|
|
|
|
|
|
|
|
/*
|
|
|
|
|--------------------------------------------------------------------------
|
|
|
|
| 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 your application, as well as bundling up your JS files.
|
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
const inc = 'inc';
|
|
|
|
const partials = 'partials';
|
|
|
|
const assets = 'assets';
|
|
|
|
const dist = 'dist';
|
|
|
|
|
|
|
|
mix.setPublicPath( dist );
|
|
|
|
mix.setResourceRoot( '../' );
|
|
|
|
|
|
|
|
// BrowserSync
|
|
|
|
mix.browserSync( {
|
|
|
|
host: 'localhost',
|
|
|
|
proxy: 'https://pressbooks.test',
|
|
|
|
port: 3100,
|
|
|
|
files: [
|
|
|
|
'*.php',
|
|
|
|
`${inc}/**/*.php`,
|
|
|
|
`${partials}/**/*.php`,
|
|
|
|
`${dist}/**/*.css`,
|
|
|
|
`${dist}/**/*.js`,
|
|
|
|
],
|
|
|
|
} );
|
|
|
|
|
|
|
|
// Sass
|
|
|
|
mix.sass( `${assets}/styles/aldine.scss`, `${dist}/styles/aldine.css` );
|
|
|
|
mix.sass( `${assets}/styles/editor.scss`, `${dist}/styles/editor.css` );
|
|
|
|
|
|
|
|
// Javascript
|
|
|
|
mix.autoload( { jquery: [ '$', 'window.jQuery', 'jQuery' ] } );
|
|
|
|
|
|
|
|
mix
|
|
|
|
.js( `${assets}/scripts/aldine.js`, `${dist}/scripts` )
|
|
|
|
.js( `${assets}/scripts/call-to-action.js`, `${dist}/scripts` )
|
|
|
|
.js( `${assets}/scripts/catalog-admin.js`, `${dist}/scripts` )
|
|
|
|
.js( `${assets}/scripts/customizer.js`, `${dist}/scripts` )
|
|
|
|
.js( `${assets}/scripts/customizer-toggle.js`, `${dist}/scripts` )
|
|
|
|
.js( `${assets}/scripts/page-section.js`, `${dist}/scripts` );
|
|
|
|
|
|
|
|
// Assets
|
|
|
|
mix
|
|
|
|
.copy( `${assets}/fonts`, `${dist}/fonts`, false )
|
|
|
|
.copy( `${assets}/images`, `${dist}/images`, false );
|
|
|
|
|
|
|
|
// Options
|
|
|
|
mix.options( { processCssUrls: false } );
|
|
|
|
|
|
|
|
// Source maps when not in production.
|
|
|
|
if ( ! mix.inProduction() ) {
|
|
|
|
mix.sourceMaps();
|
|
|
|
}
|
|
|
|
|
|
|
|
// Hash and version files in production.
|
|
|
|
if ( mix.inProduction() ) {
|
|
|
|
mix.version();
|
|
|
|
}
|
|
|
|
|
|
|
|
// Add Isotope support.
|
|
|
|
mix.webpackConfig( {
|
|
|
|
resolve: {
|
|
|
|
alias: {
|
|
|
|
masonry: 'masonry-layout',
|
|
|
|
isotope: 'isotope-layout',
|
|
|
|
},
|
|
|
|
},
|
|
|
|
} );
|