ldc-supportweb/webpack.mix.js

95 lines
2.1 KiB
JavaScript
Raw Permalink Normal View History

const path = require('path');
const mix = require('laravel-mix');
2022-08-30 13:21:07 +00:00
require("laravel-mix-polyfill");
require("laravel-mix-clean");
require("laravel-mix-eslint");
require("laravel-mix-stylelint");
const assetDir = "assets";
const polyfill = {
enabled: true,
2022-08-30 13:21:07 +00:00
bugfixes: true,
useBuiltIns: "usage",
2022-08-30 13:21:07 +00:00
targets: "last 3 version, not dead, >0.3%",
};
mix.setPublicPath('public/build');
mix.setResourceRoot('/build');
mix.webpackConfig({
resolve: {
2022-08-30 13:21:07 +00:00
extensions: ["*", ".js", ".vue", ".ts"],
alias: {
2022-08-30 13:21:07 +00:00
"@": path.resolve("resources/assets"),
vue$: "vue/dist/vue.runtime.esm-bundler.js",
},
},
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/],
// },
2022-08-30 13:21:07 +00:00
});
mix.options({
fileLoaderDirs: {
fonts: `${assetDir}/fonts`,
images: `${assetDir}/images`
},
postCss: [
2022-08-30 13:21:07 +00:00
require("postcss-discard-comments")({
removeAll: true,
}),
],
2022-08-30 13:21:07 +00:00
});
mix.clean({
cleanOnceBeforeBuildPatterns: [
"vendor/*",
"build/*"
],
2022-08-30 13:21:07 +00:00
});
2020-11-18 10:23:51 +01:00
// * COMMON
mix.ts("resources/ts/app.ts", "js", { transpileOnly: true })
2022-06-10 10:14:40 +02:00
.vue({
runtimeOnly: true,
extractStyles: true,
2022-08-30 13:21:07 +00:00
globalStyles: false,
})
.eslint({
fix: true,
extensions: ["js", "ts"],
})
.sass("resources/sass/app.scss", "css")
2022-08-30 13:21:07 +00:00
.stylelint({
configFile: ".stylelintrc.json",
files: ["**/*.scss"],
2022-06-10 10:14:40 +02:00
})
.polyfill(polyfill)
2022-08-30 13:21:07 +00:00
.version()
.sourceMaps(true, "inline-source-map");
// * Copy Blade Images Assets
mix.copyDirectory("resources/assets", "public/build/assets");