|
|
|
const mix = require('laravel-mix')
|
|
|
|
|
|
|
|
const SvgSpritemapPlugin = require('svg-spritemap-webpack-plugin')
|
|
|
|
|
|
|
|
/*
|
|
|
|
|--------------------------------------------------------------------------
|
|
|
|
| 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.
|
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
mix.webpackConfig({
|
|
|
|
plugins: [
|
|
|
|
new SvgSpritemapPlugin([
|
|
|
|
'node_modules/@tiny-components/plain-ui/src/icons/mono-icons/svg/*.svg'
|
|
|
|
], {
|
|
|
|
output: {
|
|
|
|
filename: 'symbol-defs.svg',
|
|
|
|
chunk: {
|
|
|
|
keep: true
|
|
|
|
},
|
|
|
|
svgo: {
|
|
|
|
plugins: [{
|
|
|
|
name: 'convertStyleToAttrs',
|
|
|
|
active: true
|
|
|
|
}, {
|
|
|
|
name: 'removeStyleElement',
|
|
|
|
active: true
|
|
|
|
}, {
|
|
|
|
name: 'removeAttrs',
|
|
|
|
params: {
|
|
|
|
attrs: 'fill'
|
|
|
|
}
|
|
|
|
}]
|
|
|
|
}
|
|
|
|
},
|
|
|
|
sprite: {
|
|
|
|
prefix: 'icon-'
|
|
|
|
}
|
|
|
|
})
|
|
|
|
],
|
|
|
|
module: {
|
|
|
|
rules: [{
|
|
|
|
test: /\.riot$/,
|
|
|
|
exclude: '/node_modules/',
|
|
|
|
use: [{
|
|
|
|
loader: '@riotjs/webpack-loader',
|
|
|
|
options: {
|
|
|
|
hot: false
|
|
|
|
}
|
|
|
|
}]
|
|
|
|
}]
|
|
|
|
},
|
|
|
|
externals: {
|
|
|
|
child_process: 'require("child_process")'
|
|
|
|
}
|
|
|
|
}).options({
|
|
|
|
processCssUrls: false,
|
|
|
|
target: 'node'
|
|
|
|
})
|
|
|
|
|
|
|
|
mix
|
|
|
|
.setPublicPath('./dist')
|
|
|
|
.js('src/js/app.js', 'js')
|
|
|
|
.sass('src/scss/styles.scss', 'css')
|
|
|
|
.copyDirectory('node_modules/@tiny-components/plain-ui/src/fonts/**', 'dist/css')
|
|
|
|
.copyDirectory('resources/index.html', 'dist')
|