const path = require("path");
const CssMinimizerPlugin = require("css-minimizer-webpack-plugin");
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
const TerserPlugin = require("terser-webpack-plugin");
const { VueLoaderPlugin } = require("vue-loader");
const webpack = require("webpack");
entry: `./vue-frontend/src/main.ts`,
path: path.resolve(__dirname, "./vue-frontend/dist/"),
isCustomElement: (tag) => tag.startsWith("hp-"),
appendTsSuffixTo: [/\.vue$/],
configFile: path.resolve(__dirname, 'vue-frontend/tsconfig.json')
use: [MiniCssExtractPlugin.loader, "css-loader", "sass-loader"],
test: /\.(jpg|jpeg|png|gif|woff|woff2|eot|ttf|svg)$/i,
use: "url-loader?limit=2048",
new CssMinimizerPlugin(),
new MiniCssExtractPlugin({
// new webpack.HotModuleReplacementPlugin(),
new webpack.DefinePlugin({
__VUE_OPTIONS_API__: true,
__VUE_PROD_DEVTOOLS__: false,
__VUE_PROD_HYDRATION_MISMATCH_DETAILS__: false,
extensions: [".ts", ".tsx", ".js", ".vue"],
"@": path.resolve(__dirname, "vue-frontend/src/"),
"@vue-frontend": path.resolve(__dirname, "vue-frontend/"),