ldc-web-cookie-notice/webpack.mix.js

63 lines
1.4 KiB
JavaScript
Vendored

const path = require("path");
const mix = require("laravel-mix");
const { unlinkSync } = require("fs");
require("laravel-mix-polyfill");
require("laravel-mix-clean");
require("laravel-mix-eslint");
require("laravel-mix-stylelint");
const polyfill = {
enabled: true,
bugfixes: true,
useBuiltIns: "usage",
targets: "last 3 version, not dead, >0.3%",
};
mix.setPublicPath(path.normalize("dist"));
mix.setResourceRoot(path.normalize("src"));
mix.webpackConfig({
resolve: {
extensions: ["*", ".js", ".ts"],
alias: {
"@": path.resolve("resources/assets"),
},
},
// Pour debug compilation errors
// stats: {
// children: true,
// warningsFilter: [/\-\-underline\-color/],
// },
});
mix.options({
postCss: [
require("postcss-discard-comments")({
removeAll: true,
}),
],
});
mix.clean({
cleanOnceBeforeBuildPatterns: ["dist/*"],
});
// * COMMON
mix.eslint({
fix: true,
extensions: ["js", "ts"],
})
.stylelint({
configFile: ".stylelintrc.json",
files: ["**/*.scss"],
})
.polyfill(polyfill)
.version()
.sourceMaps(false, "inline-source-map")
.ts("src/ts/ldcweb-cookies.ts", "js/cookie-notice.js")
.sass("src/scss/themes/standard.scss", "css/cookie-notice-standard.css")
.then(() => {
unlinkSync(path.resolve("dist/mix-manifest.json"));
});