ldc-web/webpack.mix.js

93 lines
2.1 KiB
JavaScript
Raw Permalink Normal View History

2022-09-21 11:17:58 +00:00
const path = require('path')
const mix = require('laravel-mix')
require('laravel-mix-polyfill')
require('laravel-mix-clean')
const assetDir = 'assets'
const polyfill = {
enabled: true,
bugfixes: true,
useBuiltIns: "usage",
targets: 'last 3 version, not dead, >0.3%'
}
2020-04-09 13:05:23 +02:00
mix.webpackConfig({
resolve: {
2022-09-21 11:17:58 +00:00
extensions: ["*", ".js", ".vue", ".ts"],
alias: {
2022-09-21 11:17:58 +00:00
'@': path.resolve('resources/assets'),
'vue$': 'vue/dist/vue.runtime.esm-bundler.js',
}
},
2022-09-21 11:17:58 +00:00
module: {
rules: [
{
test: /\.ts$/,
loader: 'ts-loader',
options: {
appendTsSuffixTo: [/\.vue$/],
}
},
{
test: /\.vue$/,
loader: 'vue-loader',
options: {
esModule: true
}
},
],
},
// Pour debug compilation errors
// stats: {
// children: true,
// warningsFilter: [
// /\-\-underline\-color/,
// ]
// },
})
mix.options({
fileLoaderDirs: {
2022-09-21 11:17:58 +00:00
fonts: `${assetDir}/fonts`,
images: `${assetDir}/images`
},
postCss: [
require('postcss-discard-comments')({
removeAll: true
})
2022-09-21 11:17:58 +00:00
],
})
mix.clean({
cleanOnceBeforeBuildPatterns: [
'css/*',
'js/*',
'images/*',
'fonts/*',
'assets/*'
]
2022-09-21 11:17:58 +00:00
})
// * BO
mix.ts("resources/ts/back.ts", "public/js/back.js", { transpileOnly: true })
.vue({
runtimeOnly: true,
extractStyles: true,
globalStyles: false,
})
.sass("resources/scss/back.scss", "public/css/back.css")
.polyfill(polyfill)
.version();
2022-09-22 12:49:52 +02:00
// * Errors
mix.sass("resources/scss/errors.scss", "public/css/errors.css")
.version();
2022-09-21 11:17:58 +00:00
// * Copy Blade Images Assets
mix.copyDirectory('resources/assets', 'public/assets')
// * FontAwesome compile
2022-09-21 11:17:58 +00:00
mix.copy('node_modules/@fortawesome/fontawesome-free/js/all.min.js', 'public/js/fontawesome.min.js')
.copy('node_modules/@fortawesome/fontawesome-free/css/svg-with-js.min.css', 'public/css/fontawesome.min.css')