2024-07-23 00:12:08 +03:00
|
|
|
import { fileURLToPath } from "url";
|
2024-07-18 21:37:45 +03:00
|
|
|
import path from "path";
|
2025-02-21 19:52:29 +01:00
|
|
|
import autoprefixer from "autoprefixer";
|
2025-04-18 02:03:34 +03:00
|
|
|
import assetPath from "./src/asset_path.js";
|
2025-02-21 21:44:17 +01:00
|
|
|
import miniCssExtractPlugin from "mini-css-extract-plugin";
|
2025-01-25 11:31:46 +01:00
|
|
|
import type { Configuration } from "webpack";
|
2025-03-27 23:15:47 +01:00
|
|
|
import CopyPlugin from "copy-webpack-plugin";
|
2020-04-12 14:22:51 +02:00
|
|
|
|
2024-07-23 00:12:08 +03:00
|
|
|
const rootDir = path.dirname(fileURLToPath(import.meta.url));
|
2025-01-25 11:31:46 +01:00
|
|
|
const config: Configuration = {
|
2025-01-09 18:07:02 +02:00
|
|
|
mode: "production",
|
2025-04-23 09:32:47 +03:00
|
|
|
entry: {},
|
2020-04-12 14:22:51 +02:00
|
|
|
output: {
|
2022-12-25 10:48:51 +01:00
|
|
|
publicPath: `${assetPath}/app-dist/`,
|
2025-04-18 02:03:34 +03:00
|
|
|
path: path.resolve(rootDir, "build"),
|
2025-01-09 18:07:02 +02:00
|
|
|
filename: "[name].js"
|
2020-04-12 14:22:51 +02:00
|
|
|
},
|
2025-02-21 21:44:17 +01:00
|
|
|
plugins: [
|
2025-02-21 22:41:47 +01:00
|
|
|
new miniCssExtractPlugin({
|
|
|
|
// TriliumNextTODO: enable this, once webpack build outputs into the "build" folder, instead of "src/public/app-dist" folder => @pano9000
|
|
|
|
//filename: "../stylesheets/[name].css"
|
2025-03-27 23:15:47 +01:00
|
|
|
}),
|
|
|
|
new CopyPlugin({
|
|
|
|
patterns: [
|
|
|
|
{
|
2025-04-18 22:52:32 +03:00
|
|
|
context: "../../node_modules/@excalidraw/excalidraw/dist/prod/fonts/",
|
2025-03-27 23:15:47 +01:00
|
|
|
from: "**/*",
|
2025-03-27 23:53:08 +01:00
|
|
|
to: "excalidraw/fonts/"
|
2025-03-27 23:15:47 +01:00
|
|
|
}
|
|
|
|
]
|
2025-02-21 22:41:47 +01:00
|
|
|
})
|
2025-02-21 21:44:17 +01:00
|
|
|
],
|
2024-12-21 21:22:27 +02:00
|
|
|
module: {
|
|
|
|
rules: [
|
|
|
|
{
|
2025-01-09 18:07:02 +02:00
|
|
|
test: /\.ts$/,
|
|
|
|
use: [
|
|
|
|
{
|
|
|
|
loader: "ts-loader",
|
|
|
|
options: {
|
2025-04-18 02:03:34 +03:00
|
|
|
configFile: path.join(rootDir, "tsconfig.json")
|
2025-01-09 18:07:02 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
],
|
|
|
|
exclude: /node_modules/
|
2025-02-21 19:52:29 +01:00
|
|
|
},
|
2025-03-11 22:59:16 +02:00
|
|
|
{
|
|
|
|
test: /\.m?js$/,
|
|
|
|
resolve: {
|
|
|
|
fullySpecified: false
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
// bootstrap CSS related configuration
|
|
|
|
test: /\.(css)$/,
|
|
|
|
use: [
|
|
|
|
{
|
|
|
|
loader: miniCssExtractPlugin.loader
|
|
|
|
},
|
|
|
|
{
|
2025-03-28 17:08:34 +01:00
|
|
|
loader: "css-loader",
|
|
|
|
options: {
|
|
|
|
esModule: true
|
|
|
|
}
|
2025-03-11 22:59:16 +02:00
|
|
|
},
|
|
|
|
{
|
|
|
|
loader: "postcss-loader",
|
|
|
|
options: {
|
|
|
|
postcssOptions: {
|
|
|
|
plugins: [autoprefixer]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
2025-02-21 19:52:29 +01:00
|
|
|
{
|
|
|
|
// bootstrap CSS related configuration
|
|
|
|
test: /\.(scss)$/,
|
|
|
|
use: [
|
|
|
|
{
|
2025-02-21 21:44:17 +01:00
|
|
|
loader: miniCssExtractPlugin.loader
|
2025-02-21 19:52:29 +01:00
|
|
|
},
|
|
|
|
{
|
|
|
|
loader: "css-loader"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
loader: "postcss-loader",
|
|
|
|
options: {
|
|
|
|
postcssOptions: {
|
|
|
|
plugins: [autoprefixer]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
loader: "sass-loader"
|
|
|
|
}
|
|
|
|
]
|
2025-04-04 14:02:34 +03:00
|
|
|
},
|
|
|
|
{
|
|
|
|
test: /\.(png)$/i,
|
|
|
|
type: 'asset/resource'
|
2025-01-09 18:07:02 +02:00
|
|
|
}
|
2024-12-21 21:22:27 +02:00
|
|
|
]
|
|
|
|
},
|
|
|
|
resolve: {
|
2025-01-09 18:07:02 +02:00
|
|
|
extensions: [".ts", ".js"],
|
2024-12-21 21:22:27 +02:00
|
|
|
extensionAlias: {
|
|
|
|
".js": [".js", ".ts"],
|
|
|
|
".cjs": [".cjs", ".cts"],
|
|
|
|
".mjs": [".mjs", ".mts"]
|
2025-03-28 17:08:34 +01:00
|
|
|
},
|
|
|
|
alias: {
|
|
|
|
stylesheets: path.resolve(rootDir, "src/public/stylesheets")
|
2024-12-21 21:22:27 +02:00
|
|
|
}
|
|
|
|
},
|
2025-02-17 23:07:54 +01:00
|
|
|
devtool: "nosources-source-map",
|
2025-01-09 18:07:02 +02:00
|
|
|
target: "electron-renderer"
|
2021-12-23 23:01:25 +01:00
|
|
|
};
|
2025-01-25 11:31:46 +01:00
|
|
|
|
2025-02-21 19:52:29 +01:00
|
|
|
export default config;
|