| 
									
										
										
										
											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"; | 
					
						
							| 
									
										
										
										
											2024-07-18 21:35:17 +03:00
										 |  |  | import assetPath from "./src/services/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", | 
					
						
							| 
									
										
										
										
											2020-04-12 14:22:51 +02:00
										 |  |  |     entry: { | 
					
						
							| 
									
										
										
										
											2025-01-09 18:07:02 +02:00
										 |  |  |         setup: "./src/public/app/setup.js", | 
					
						
							| 
									
										
										
										
											2025-02-21 22:22:37 +01:00
										 |  |  |         login: "./src/public/app/login.js", | 
					
						
							| 
									
										
										
										
											2025-01-09 18:07:02 +02:00
										 |  |  |         mobile: "./src/public/app/mobile.js", | 
					
						
							| 
									
										
										
										
											2025-01-24 19:30:07 +01:00
										 |  |  |         desktop: "./src/public/app/desktop.js", | 
					
						
							| 
									
										
										
										
											2025-02-21 22:21:49 +01:00
										 |  |  |         share: "./src/public/app/share.js", | 
					
						
							|  |  |  |         // TriliumNextTODO: integrate set_password into setup entry point/view
 | 
					
						
							|  |  |  |         set_password: "./src/public/app/set_password.js" | 
					
						
							| 
									
										
										
										
											2020-04-12 14:22:51 +02:00
										 |  |  |     }, | 
					
						
							|  |  |  |     output: { | 
					
						
							| 
									
										
										
										
											2022-12-25 10:48:51 +01:00
										 |  |  |         publicPath: `${assetPath}/app-dist/`, | 
					
						
							| 
									
										
										
										
											2025-03-09 08:29:03 +01:00
										 |  |  |         path: path.resolve(rootDir, "build/src/public/app-dist"), | 
					
						
							| 
									
										
										
										
											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: [ | 
					
						
							|  |  |  |                 { | 
					
						
							|  |  |  |                     context: "node_modules/@excalidraw/excalidraw/dist/prod/fonts/", | 
					
						
							|  |  |  |                     from: "**/*", | 
					
						
							| 
									
										
										
										
											2025-03-27 23:53:08 +01:00
										 |  |  |                     to: "excalidraw/fonts/" | 
					
						
							| 
									
										
										
										
											2025-04-03 22:35:09 +02:00
										 |  |  |                 }, | 
					
						
							|  |  |  |                 { | 
					
						
							|  |  |  |                     context: "node_modules/leaflet/dist/images/", | 
					
						
							|  |  |  |                     from: "**/*", | 
					
						
							|  |  |  |                     to: "leaflet/images/" | 
					
						
							| 
									
										
										
										
											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: { | 
					
						
							|  |  |  |                             configFile: path.join(rootDir, "tsconfig.webpack.json") | 
					
						
							|  |  |  |                         } | 
					
						
							|  |  |  |                     } | 
					
						
							|  |  |  |                 ], | 
					
						
							|  |  |  |                 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-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; |