mirror of
				https://github.com/TriliumNext/Notes.git
				synced 2025-10-31 04:51:31 +08:00 
			
		
		
		
	feat(build): integrate webpack middleware
This commit is contained in:
		
							parent
							
								
									3e710fbdf5
								
							
						
					
					
						commit
						b3b8ae4a0e
					
				
							
								
								
									
										270
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										270
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							| @ -1,12 +1,12 @@ | ||||
| { | ||||
|   "name": "trilium", | ||||
|   "version": "0.90.12", | ||||
|   "version": "0.91.1-beta", | ||||
|   "lockfileVersion": 3, | ||||
|   "requires": true, | ||||
|   "packages": { | ||||
|     "": { | ||||
|       "name": "trilium", | ||||
|       "version": "0.90.12", | ||||
|       "version": "0.91.1-beta", | ||||
|       "license": "AGPL-3.0-only", | ||||
|       "dependencies": { | ||||
|         "@braintree/sanitize-url": "7.1.0", | ||||
| @ -162,7 +162,8 @@ | ||||
|         "typedoc": "0.27.4", | ||||
|         "typescript": "5.7.2", | ||||
|         "webpack": "5.97.1", | ||||
|         "webpack-cli": "5.1.4" | ||||
|         "webpack-cli": "5.1.4", | ||||
|         "webpack-dev-middleware": "7.4.2" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/@antfu/install-pkg": { | ||||
| @ -2960,6 +2961,63 @@ | ||||
|         "node": ">=v12.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/@jsonjoy.com/base64": { | ||||
|       "version": "1.1.2", | ||||
|       "resolved": "https://registry.npmjs.org/@jsonjoy.com/base64/-/base64-1.1.2.tgz", | ||||
|       "integrity": "sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==", | ||||
|       "dev": true, | ||||
|       "license": "Apache-2.0", | ||||
|       "engines": { | ||||
|         "node": ">=10.0" | ||||
|       }, | ||||
|       "funding": { | ||||
|         "type": "github", | ||||
|         "url": "https://github.com/sponsors/streamich" | ||||
|       }, | ||||
|       "peerDependencies": { | ||||
|         "tslib": "2" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/@jsonjoy.com/json-pack": { | ||||
|       "version": "1.1.1", | ||||
|       "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-1.1.1.tgz", | ||||
|       "integrity": "sha512-osjeBqMJ2lb/j/M8NCPjs1ylqWIcTRTycIhVB5pt6LgzgeRSb0YRZ7j9RfA8wIUrsr/medIuhVyonXRZWLyfdw==", | ||||
|       "dev": true, | ||||
|       "license": "Apache-2.0", | ||||
|       "dependencies": { | ||||
|         "@jsonjoy.com/base64": "^1.1.1", | ||||
|         "@jsonjoy.com/util": "^1.1.2", | ||||
|         "hyperdyperid": "^1.2.0", | ||||
|         "thingies": "^1.20.0" | ||||
|       }, | ||||
|       "engines": { | ||||
|         "node": ">=10.0" | ||||
|       }, | ||||
|       "funding": { | ||||
|         "type": "github", | ||||
|         "url": "https://github.com/sponsors/streamich" | ||||
|       }, | ||||
|       "peerDependencies": { | ||||
|         "tslib": "2" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/@jsonjoy.com/util": { | ||||
|       "version": "1.5.0", | ||||
|       "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-1.5.0.tgz", | ||||
|       "integrity": "sha512-ojoNsrIuPI9g6o8UxhraZQSyF2ByJanAY4cTFbc8Mf2AXEF4aQRGY1dJxyJpuyav8r9FGflEt/Ff3u5Nt6YMPA==", | ||||
|       "dev": true, | ||||
|       "license": "Apache-2.0", | ||||
|       "engines": { | ||||
|         "node": ">=10.0" | ||||
|       }, | ||||
|       "funding": { | ||||
|         "type": "github", | ||||
|         "url": "https://github.com/sponsors/streamich" | ||||
|       }, | ||||
|       "peerDependencies": { | ||||
|         "tslib": "2" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/@malept/cross-spawn-promise": { | ||||
|       "version": "1.1.0", | ||||
|       "resolved": "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.0.tgz", | ||||
| @ -4349,6 +4407,48 @@ | ||||
|         "url": "https://github.com/sponsors/epoberezkin" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/ajv-formats": { | ||||
|       "version": "2.1.1", | ||||
|       "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", | ||||
|       "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", | ||||
|       "dev": true, | ||||
|       "license": "MIT", | ||||
|       "dependencies": { | ||||
|         "ajv": "^8.0.0" | ||||
|       }, | ||||
|       "peerDependencies": { | ||||
|         "ajv": "^8.0.0" | ||||
|       }, | ||||
|       "peerDependenciesMeta": { | ||||
|         "ajv": { | ||||
|           "optional": true | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/ajv-formats/node_modules/ajv": { | ||||
|       "version": "8.17.1", | ||||
|       "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", | ||||
|       "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", | ||||
|       "dev": true, | ||||
|       "license": "MIT", | ||||
|       "dependencies": { | ||||
|         "fast-deep-equal": "^3.1.3", | ||||
|         "fast-uri": "^3.0.1", | ||||
|         "json-schema-traverse": "^1.0.0", | ||||
|         "require-from-string": "^2.0.2" | ||||
|       }, | ||||
|       "funding": { | ||||
|         "type": "github", | ||||
|         "url": "https://github.com/sponsors/epoberezkin" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/ajv-formats/node_modules/json-schema-traverse": { | ||||
|       "version": "1.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", | ||||
|       "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", | ||||
|       "dev": true, | ||||
|       "license": "MIT" | ||||
|     }, | ||||
|     "node_modules/ajv-keywords": { | ||||
|       "version": "3.5.2", | ||||
|       "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", | ||||
| @ -8817,6 +8917,13 @@ | ||||
|       "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", | ||||
|       "license": "MIT" | ||||
|     }, | ||||
|     "node_modules/fast-uri": { | ||||
|       "version": "3.0.3", | ||||
|       "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz", | ||||
|       "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==", | ||||
|       "dev": true, | ||||
|       "license": "BSD-3-Clause" | ||||
|     }, | ||||
|     "node_modules/fast-xml-parser": { | ||||
|       "version": "4.5.0", | ||||
|       "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.5.0.tgz", | ||||
| @ -10157,6 +10264,16 @@ | ||||
|         "ms": "^2.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/hyperdyperid": { | ||||
|       "version": "1.2.0", | ||||
|       "resolved": "https://registry.npmjs.org/hyperdyperid/-/hyperdyperid-1.2.0.tgz", | ||||
|       "integrity": "sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==", | ||||
|       "dev": true, | ||||
|       "license": "MIT", | ||||
|       "engines": { | ||||
|         "node": ">=10.18" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/i18next": { | ||||
|       "version": "24.1.0", | ||||
|       "resolved": "https://registry.npmjs.org/i18next/-/i18next-24.1.0.tgz", | ||||
| @ -12669,6 +12786,26 @@ | ||||
|         "node": ">=6" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/memfs": { | ||||
|       "version": "4.15.0", | ||||
|       "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.15.0.tgz", | ||||
|       "integrity": "sha512-q9MmZXd2rRWHS6GU3WEm3HyiXZyyoA1DqdOhEq0lxPBmKb5S7IAOwX0RgUCwJfqjelDCySa5h8ujOy24LqsWcw==", | ||||
|       "dev": true, | ||||
|       "license": "Apache-2.0", | ||||
|       "dependencies": { | ||||
|         "@jsonjoy.com/json-pack": "^1.0.3", | ||||
|         "@jsonjoy.com/util": "^1.3.0", | ||||
|         "tree-dump": "^1.0.1", | ||||
|         "tslib": "^2.0.0" | ||||
|       }, | ||||
|       "engines": { | ||||
|         "node": ">= 4.0.0" | ||||
|       }, | ||||
|       "funding": { | ||||
|         "type": "github", | ||||
|         "url": "https://github.com/sponsors/streamich" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/merge-descriptors": { | ||||
|       "version": "1.0.3", | ||||
|       "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", | ||||
| @ -14812,6 +14949,16 @@ | ||||
|         "node": ">=0.10.0" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/require-from-string": { | ||||
|       "version": "2.0.2", | ||||
|       "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", | ||||
|       "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", | ||||
|       "dev": true, | ||||
|       "license": "MIT", | ||||
|       "engines": { | ||||
|         "node": ">=0.10.0" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/requizzle": { | ||||
|       "version": "0.2.3", | ||||
|       "resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.3.tgz", | ||||
| @ -16218,6 +16365,19 @@ | ||||
|       "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "node_modules/thingies": { | ||||
|       "version": "1.21.0", | ||||
|       "resolved": "https://registry.npmjs.org/thingies/-/thingies-1.21.0.tgz", | ||||
|       "integrity": "sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==", | ||||
|       "dev": true, | ||||
|       "license": "Unlicense", | ||||
|       "engines": { | ||||
|         "node": ">=10.18" | ||||
|       }, | ||||
|       "peerDependencies": { | ||||
|         "tslib": "^2" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/timm": { | ||||
|       "version": "1.7.1", | ||||
|       "resolved": "https://registry.npmjs.org/timm/-/timm-1.7.1.tgz", | ||||
| @ -16390,6 +16550,23 @@ | ||||
|         "node": ">=18" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/tree-dump": { | ||||
|       "version": "1.0.2", | ||||
|       "resolved": "https://registry.npmjs.org/tree-dump/-/tree-dump-1.0.2.tgz", | ||||
|       "integrity": "sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ==", | ||||
|       "dev": true, | ||||
|       "license": "Apache-2.0", | ||||
|       "engines": { | ||||
|         "node": ">=10.0" | ||||
|       }, | ||||
|       "funding": { | ||||
|         "type": "github", | ||||
|         "url": "https://github.com/sponsors/streamich" | ||||
|       }, | ||||
|       "peerDependencies": { | ||||
|         "tslib": "2" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/tree-kill": { | ||||
|       "version": "1.2.2", | ||||
|       "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", | ||||
| @ -17133,6 +17310,93 @@ | ||||
|         "node": ">=14" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/webpack-dev-middleware": { | ||||
|       "version": "7.4.2", | ||||
|       "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-7.4.2.tgz", | ||||
|       "integrity": "sha512-xOO8n6eggxnwYpy1NlzUKpvrjfJTvae5/D6WOK0S2LSo7vjmo5gCM1DbLUmFqrMTJP+W/0YZNctm7jasWvLuBA==", | ||||
|       "dev": true, | ||||
|       "license": "MIT", | ||||
|       "dependencies": { | ||||
|         "colorette": "^2.0.10", | ||||
|         "memfs": "^4.6.0", | ||||
|         "mime-types": "^2.1.31", | ||||
|         "on-finished": "^2.4.1", | ||||
|         "range-parser": "^1.2.1", | ||||
|         "schema-utils": "^4.0.0" | ||||
|       }, | ||||
|       "engines": { | ||||
|         "node": ">= 18.12.0" | ||||
|       }, | ||||
|       "funding": { | ||||
|         "type": "opencollective", | ||||
|         "url": "https://opencollective.com/webpack" | ||||
|       }, | ||||
|       "peerDependencies": { | ||||
|         "webpack": "^5.0.0" | ||||
|       }, | ||||
|       "peerDependenciesMeta": { | ||||
|         "webpack": { | ||||
|           "optional": true | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/webpack-dev-middleware/node_modules/ajv": { | ||||
|       "version": "8.17.1", | ||||
|       "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", | ||||
|       "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", | ||||
|       "dev": true, | ||||
|       "license": "MIT", | ||||
|       "dependencies": { | ||||
|         "fast-deep-equal": "^3.1.3", | ||||
|         "fast-uri": "^3.0.1", | ||||
|         "json-schema-traverse": "^1.0.0", | ||||
|         "require-from-string": "^2.0.2" | ||||
|       }, | ||||
|       "funding": { | ||||
|         "type": "github", | ||||
|         "url": "https://github.com/sponsors/epoberezkin" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/webpack-dev-middleware/node_modules/ajv-keywords": { | ||||
|       "version": "5.1.0", | ||||
|       "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", | ||||
|       "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", | ||||
|       "dev": true, | ||||
|       "license": "MIT", | ||||
|       "dependencies": { | ||||
|         "fast-deep-equal": "^3.1.3" | ||||
|       }, | ||||
|       "peerDependencies": { | ||||
|         "ajv": "^8.8.2" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/webpack-dev-middleware/node_modules/json-schema-traverse": { | ||||
|       "version": "1.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", | ||||
|       "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", | ||||
|       "dev": true, | ||||
|       "license": "MIT" | ||||
|     }, | ||||
|     "node_modules/webpack-dev-middleware/node_modules/schema-utils": { | ||||
|       "version": "4.3.0", | ||||
|       "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.0.tgz", | ||||
|       "integrity": "sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==", | ||||
|       "dev": true, | ||||
|       "license": "MIT", | ||||
|       "dependencies": { | ||||
|         "@types/json-schema": "^7.0.9", | ||||
|         "ajv": "^8.9.0", | ||||
|         "ajv-formats": "^2.1.1", | ||||
|         "ajv-keywords": "^5.1.0" | ||||
|       }, | ||||
|       "engines": { | ||||
|         "node": ">= 10.13.0" | ||||
|       }, | ||||
|       "funding": { | ||||
|         "type": "opencollective", | ||||
|         "url": "https://opencollective.com/webpack" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/webpack-merge": { | ||||
|       "version": "5.8.0", | ||||
|       "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", | ||||
|  | ||||
| @ -202,6 +202,7 @@ | ||||
|     "typedoc": "0.27.4", | ||||
|     "typescript": "5.7.2", | ||||
|     "webpack": "5.97.1", | ||||
|     "webpack-cli": "5.1.4" | ||||
|     "webpack-cli": "5.1.4", | ||||
|     "webpack-dev-middleware": "7.4.2" | ||||
|   } | ||||
| } | ||||
|  | ||||
| @ -4,6 +4,19 @@ import { fileURLToPath } from "url"; | ||||
| import express from "express"; | ||||
| import env from "../services/env.js"; | ||||
| import serveStatic from "serve-static"; | ||||
| import webpack from "webpack"; | ||||
| import webpackMiddleware from "webpack-dev-middleware"; | ||||
| 
 | ||||
| const frontendCompiler = webpack({ | ||||
|   mode: "development", | ||||
|   entry: { | ||||
|     setup: './src/public/app/setup.js', | ||||
|     mobile: './src/public/app/mobile.js', | ||||
|     desktop: './src/public/app/desktop.js', | ||||
|   }, | ||||
|   devtool: 'source-map', | ||||
|   target: 'electron-renderer' | ||||
| }); | ||||
| 
 | ||||
| const persistentCacheStatic = (root: string, options?: serveStatic.ServeStaticOptions<express.Response<any, Record<string, any>>>) => { | ||||
|     if (!env.isDev()) { | ||||
| @ -17,7 +30,9 @@ const persistentCacheStatic = (root: string, options?: serveStatic.ServeStaticOp | ||||
| 
 | ||||
| function register(app: express.Application) { | ||||
|     const srcRoot = path.join(path.dirname(fileURLToPath(import.meta.url)), '..'); | ||||
|     app.use(`/${assetPath}/app`, persistentCacheStatic(path.join(srcRoot, 'public/app'))); | ||||
|     app.use(`/${assetPath}/app`, webpackMiddleware(frontendCompiler, { | ||||
| 
 | ||||
|     })); | ||||
|     app.use(`/${assetPath}/app-dist`, persistentCacheStatic(path.join(srcRoot, 'public/app-dist'))); | ||||
|     app.use(`/${assetPath}/fonts`, persistentCacheStatic(path.join(srcRoot, 'public/fonts'))); | ||||
|     app.use(`/assets/vX/fonts`, express.static(path.join(srcRoot, 'public/fonts'))); | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Elian Doran
						Elian Doran