2022-08-02 11:17:03 +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%'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
mix.webpackConfig({
|
|
|
|
|
resolve: {
|
|
|
|
|
extensions: ["*", ".js", ".vue", ".ts"],
|
|
|
|
|
alias: {
|
|
|
|
|
'@': path.resolve('resources/assets')
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
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: {
|
|
|
|
|
fonts: `${assetDir}/fonts`,
|
|
|
|
|
images: `${assetDir}/images`
|
|
|
|
|
},
|
|
|
|
|
postCss: [
|
|
|
|
|
require('postcss-discard-comments')({
|
|
|
|
|
removeAll: true
|
|
|
|
|
})
|
|
|
|
|
],
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
mix.clean({
|
|
|
|
|
cleanOnceBeforeBuildPatterns: [
|
|
|
|
|
'css/*',
|
|
|
|
|
'js/*',
|
|
|
|
|
'images/*',
|
|
|
|
|
'fonts/*',
|
|
|
|
|
'assets/*',
|
|
|
|
|
'webfonts/*'
|
|
|
|
|
]
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
// * BO
|
|
|
|
|
mix.ts('resources/ts/bo.ts', 'public/js/bo.js', { transpileOnly: true })
|
|
|
|
|
.sass('resources/scss/bo.scss', 'public/css/bo.css')
|
|
|
|
|
.vue({
|
|
|
|
|
runtimeOnly: true,
|
|
|
|
|
extractStyles: true,
|
|
|
|
|
globalStyles: false
|
|
|
|
|
})
|
|
|
|
|
.polyfill(polyfill)
|
|
|
|
|
.sourceMaps(false)
|
|
|
|
|
.version()
|
|
|
|
|
|
|
|
|
|
// * FO
|
|
|
|
|
mix.ts('resources/ts/fo.ts', 'public/js/fo.js', { transpileOnly: true })
|
|
|
|
|
.sass('resources/scss/fo.scss', 'public/css/fo.css')
|
|
|
|
|
.vue({
|
|
|
|
|
runtimeOnly: true,
|
|
|
|
|
extractStyles: true,
|
|
|
|
|
globalStyles: false
|
|
|
|
|
})
|
|
|
|
|
.polyfill(polyfill)
|
|
|
|
|
.sourceMaps(false)
|
|
|
|
|
.version()
|
|
|
|
|
|
|
|
|
|
// * Copy Blade Images Assets
|
|
|
|
|
mix.copyDirectory('resources/assets', 'public/assets')
|