You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
potato-launcher/webpack.mix.js

75 lines
2.1 KiB

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")',
fs: 'require("fs")',
path: 'require("path")',
mkdirp: 'require("mkdirp")',
electron: 'require("electron")'
}
}).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')