| const mix = require('laravel-mix'); |
= |
const mix = require('laravel-mix'); |
| const glob = require('glob') |
|
const glob = require('glob') |
| const path = require('path') |
|
const path = require('path') |
| |
|
|
|
|
|
|
|
|
| |
-+ |
| Configure Webpack |
| |
|
|-------------------------------------------------------------------------- |
| |
|
*/ |
| |
|
|
| |
|
mix.webpackConfig({ |
| |
|
output: { |
| |
|
libraryTarget: 'window' |
| |
|
}, |
| |
|
module: { |
| |
|
rules: [{ |
| |
|
test: /\.js$/, |
| |
|
include: [ |
| |
|
path.join(__dirname, 'node_modules/bootstrap/'), |
| |
|
path.join(__dirname, 'node_modules/bootstrap-slider/'), |
| |
|
path.join(__dirname, 'node_modules/popper.js/'), |
| |
|
path.join(__dirname, 'node_modules/bootstrap-table/'), |
| |
|
path.join(__dirname, 'node_modules/shepherd.js/'), |
| |
|
path.join(__dirname, 'node_modules/flot/') |
| |
|
], |
| |
|
loader: 'babel-loader', |
| |
|
options: { |
| |
|
presets: [['@babel/preset-env', { targets: 'last 2 versions, ie >= 10' }]], |
| |
|
plugins: ['@babel/plugin-transform-destructuring', '@babel/plugin-proposal-object-rest-spread', '@babel/plugin-transform-template-literals'], |
| |
|
babelrc: false |
| |
|
} |
| |
|
}] |
| |
|
}, |
| |
|
externals: { |
| |
|
'jquery': 'jQuery', |
| |
|
'moment': 'moment', |
| |
|
'datatables.net': '$.fn.dataTable', |
| |
|
'spin.js': 'Spinner', |
| |
|
'jsdom': 'jsdom', |
| |
|
'd3': 'd3', |
| |
|
'eve': 'eve', |
| |
|
'velocity': 'Velocity', |
| |
|
'hammer': 'Hammer', |
| |
|
'raphael': 'Raphael', |
| |
|
'jquery-mapael': 'Mapael', |
| |
|
'pace': '"pace-progress"', |
| |
|
'popper.js': 'Popper', |
| |
|
'jquery-validation': 'jQuery', |
| |
|
|
| |
|
// blueimp-file-upload plugin |
| |
|
'canvas-to-blob': 'blueimpDataURLtoBlob', |
| |
|
'blueimp-tmpl': 'blueimpTmpl', |
| |
|
'load-image': 'blueimpLoadImage', |
| |
|
'load-image-meta': 'null', |
| |
|
'load-image-scale': 'null', |
| |
|
'load-image-exif': 'null', |
| |
|
'jquery-ui/ui/widget': 'null', |
| |
|
'./jquery.fileupload': 'null', |
| |
|
'./jquery.fileupload-process': 'null', |
| |
|
'./jquery.fileupload-image': 'null', |
| |
|
'./jquery.fileupload-video': 'null', |
| |
|
'./jquery.fileupload-validate': 'null', |
| |
|
|
| |
|
// blueimp-gallery plugin |
| |
|
'./blueimp-helper': 'jQuery', |
| |
|
'./blueimp-gallery': 'blueimpGallery', |
| |
|
'./blueimp-gallery-video': 'blueimpGallery' |
| |
|
} |
| |
|
}) |
| |
|
|
| |
|
/* |
| |
|
|-------------------------------------------------------------------------- |
|
= |
|
|
|
|
|
|
|
| |
|
|
| function mixAssetsDir(query, cb) { |
|
function mixAssetsDir(query, cb) { |
| (glob.sync('resources/assets/' + query) || []).forEach(f => { |
|
(glob.sync('resources/assets/' + query) || []).forEach(f => { |
| f = f.replace(/[\\\/]+/g, '/'); |
|
f = f.replace(/[\\\/]+/g, '/'); |
| cb(f, f.replace('resources/assets', 'public')); |
|
cb(f, f.replace('resources/assets', 'public')); |
| }); |
|
}); |
| } |
|
} |
| |
|
|
| const sassOptions = { |
|
const sassOptions = { |
| precision: 5, |
+- |
|
| implementation: () => require('node-sass') |
= |
implementation: () => require('node-sass') |
| }; |
|
}; |
| |
|
|
|
|
|
| mix.sass('resources/assets/vendor/sass/bootstrap.scss', 'public/vendor/css', sassOptions) |
|
mix.sass('resources/assets/vendor/sass/bootstrap.scss', 'public/vendor/css', sassOptions) |
| .sass('resources/assets/vendor/sass/appwork.scss', 'public/vendor/css', sassOptions) |
|
.sass('resources/assets/vendor/sass/appwork.scss', 'public/vendor/css', sassOptions) |
| .sass('resources/assets/vendor/sass/theme-corporate.scss', 'public/vendor/css', sassOptions) |
|
.sass('resources/assets/vendor/sass/theme-corporate.scss', 'public/vendor/css', sassOptions) |
| .sass('resources/assets/vendor/sass/colors.scss', 'public/vendor/css', sassOptions) |
|
.sass('resources/assets/vendor/sass/colors.scss', 'public/vendor/css', sassOptions) |
| .sass('resources/assets/vendor/sass/uikit.scss', 'public/vendor/css', sassOptions); |
|
.sass('resources/assets/vendor/sass/uikit.scss', 'public/vendor/css', sassOptions); |
| |
|
|
|
|
|
| mixAssetsDir('vendor/js/**/*.js', (src, dest) => mix.scripts(src, dest)); |
<> |
mixAssetsDir('vendor/js/**/*.js', (src, dest) => mix.js(src, dest)); |
| |
= |
|
|
|
|
| mixAssetsDir('vendor/libs/**/*.js', (src, dest) => mix.scripts(src, dest)); |
<> |
mixAssetsDir('vendor/libs/**/*.js', (src, dest) => mix.js(src, dest)); |
| mixAssetsDir('vendor/libs/**/!(_)*.scss', (src, dest) => mix.sass(src, dest.replace(/\.scss$/, '.css'), sassOptions)); |
= |
mixAssetsDir('vendor/libs/**/!(_)*.scss', (src, dest) => mix.sass(src, dest.replace(/\.scss$/, '.css'), sassOptions)); |
| |
|
|
|
|
|
| mixAssetsDir('vendor/sass/pages/**/!(_)*.scss', (src, dest) => mix.sass(src, dest.replace(/(\\|\/)sass(\\|\/)/, '$1css$2').replace(/\.scss$/, '.css'), sassOptions)); |
|
mixAssetsDir('vendor/sass/pages/**/!(_)*.scss', (src, dest) => mix.sass(src, dest.replace(/(\\|\/)sass(\\|\/)/, '$1css$2').replace(/\.scss$/, '.css'), sassOptions)); |
| |
|
|
|
|
|
| mixAssetsDir('vendor/fonts/*.css', (src, dest) => mix.copy(src, dest)); |
|
mixAssetsDir('vendor/fonts/*.css', (src, dest) => mix.copy(src, dest)); |
| mixAssetsDir('vendor/fonts/*/*', (src, dest) => mix.copy(src, dest)); |
|
mixAssetsDir('vendor/fonts/*/*', (src, dest) => mix.copy(src, dest)); |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
|
|
| mix.js('resources/assets/js/application.js', 'public/js') |
|
mix.js('resources/assets/js/application.js', 'public/js') |
| .sass('resources/assets/sass/application.scss', 'public/css'); |
|
.sass('resources/assets/sass/application.scss', 'public/css'); |
| |
|
|
| mix.version(); |
|
mix.version(); |