|
|
|
|
@ -1,4 +1,7 @@
|
|
|
|
|
let mix = require( 'laravel-mix' ); |
|
|
|
|
let path = require( 'path' ); |
|
|
|
|
let normalizeNewline = require( 'normalize-newline' ); |
|
|
|
|
let fs = require( 'fs' ); |
|
|
|
|
|
|
|
|
|
/* |
|
|
|
|
|-------------------------------------------------------------------------- |
|
|
|
|
@ -16,8 +19,20 @@ const partials = 'partials';
|
|
|
|
|
const assets = 'assets'; |
|
|
|
|
const dist = 'dist'; |
|
|
|
|
|
|
|
|
|
mix.setPublicPath( dist ); |
|
|
|
|
mix.setResourceRoot( '../' ); |
|
|
|
|
|
|
|
|
|
// Normalize Newlines
|
|
|
|
|
const normalizeNewlines = ( dir ) => { |
|
|
|
|
fs.readdirSync( dir ).forEach( function( file ) { |
|
|
|
|
file = path.join( dir, file ); |
|
|
|
|
fs.readFile( file, 'utf8', function( err, buffer ) { |
|
|
|
|
if ( err ) return console.log( err ); |
|
|
|
|
buffer = normalizeNewline( buffer ); |
|
|
|
|
fs.writeFile( file, buffer, 'utf8', function( err ) { |
|
|
|
|
if ( err ) return console.log( err ); |
|
|
|
|
} ); |
|
|
|
|
} ); |
|
|
|
|
} ); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
// BrowserSync
|
|
|
|
|
mix.browserSync( { |
|
|
|
|
@ -33,27 +48,24 @@ mix.browserSync( {
|
|
|
|
|
], |
|
|
|
|
} ); |
|
|
|
|
|
|
|
|
|
// 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 |
|
|
|
|
.setPublicPath( dist ) |
|
|
|
|
.setResourceRoot( '../' ) |
|
|
|
|
.sass( `${assets}/styles/aldine.scss`, `${dist}/styles/aldine.css` ) |
|
|
|
|
.sass( `${assets}/styles/editor.scss`, `${dist}/styles/editor.css` ) |
|
|
|
|
.autoload( { jquery: [ '$', 'window.jQuery', 'jQuery' ] } ) |
|
|
|
|
.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/page-section.js`, `${dist}/scripts` ); |
|
|
|
|
|
|
|
|
|
// Assets
|
|
|
|
|
mix |
|
|
|
|
.js( `${assets}/scripts/page-section.js`, `${dist}/scripts` ) |
|
|
|
|
.copy( `${assets}/fonts`, `${dist}/fonts`, false ) |
|
|
|
|
.copy( `${assets}/images`, `${dist}/images`, false ); |
|
|
|
|
|
|
|
|
|
// Options
|
|
|
|
|
mix.options( { processCssUrls: false } ); |
|
|
|
|
.copy( `${assets}/images`, `${dist}/images`, false ) |
|
|
|
|
.options( { processCssUrls: false } ) |
|
|
|
|
.then( () => { |
|
|
|
|
normalizeNewlines( `${dist}/scripts/` ); |
|
|
|
|
normalizeNewlines( `${dist}/styles/` ); |
|
|
|
|
} ); |
|
|
|
|
|
|
|
|
|
// Source maps when not in production.
|
|
|
|
|
if ( ! mix.inProduction() ) { |
|
|
|
|
|