11700 Commits

Author SHA1 Message Date
Panagiotis Papadopoulos
c68b0b02e4 build(Docker): simplify Docker build and runtime stage
this Dockerfile is aimed at production builds, i.e. trying to keep size as small as possible at the cost of "rebuild speed", due to missed docker cache opportunities.

Build Stage:
* do the complete build inside docker as oposed to the previous "hybrid", where tsc was run locally and the output got copied into the Docker build stage → you can now build this with Docker, without having to install the whole node/TS env locally

* build into a "build" subfolder, for easier clean up during build stage

* get rid of now unnecessary extra file/asset handling, as this is now handled by `npm run build:prepare-dist`

* no `npm prune` needed here, as we delete the whole build folder anyways in the last build step

Runtime stage:
* move the "electron" dep removal from the builder stage to the runtime stage, before installing the dependencies

* move to `npm ci` for reproducible installations – but only installing runtime deps here

* get rid of now unnecessary copying commands from the builder stage, as everything is now neatly available in "/usr/src/app"
2025-03-07 23:14:56 +01:00
Panagiotis Papadopoulos
2973d38db0 build(Docker): move server-package.json preparation into Dockerfile 2025-03-07 23:14:56 +01:00
Panagiotis Papadopoulos
bb7a4f9bc3 build(Docker): comment out seemingly useless installation of build dependencies 2025-03-07 23:14:56 +01:00
Panagiotis Papadopoulos
e389592017 build(copy-dist): copying build folder is not required anymore
TS and Webpack build into the dist folder directly now
2025-03-07 23:14:56 +01:00
Panagiotis Papadopoulos
5e289ea12d build: get rid of intermediary "build" folder -> use "dist" directly 2025-03-07 23:14:56 +01:00
Panagiotis Papadopoulos
3032156b45 build(copy-dist): execute code in try/catch -> get rid of function
since we don't export this anywhere, might as well just call the steps directly
2025-03-07 23:14:56 +01:00
Panagiotis Papadopoulos
d75cf8c11e build(copy-dist): consolidate nodeModules copying into a single loop 2025-03-07 23:14:56 +01:00
Panagiotis Papadopoulos
a816abb372 build(copy-dist): use sync copying
since this is a "standalone" script we are running and no other JS scritps are running "in the background", there's no real benefit for async here.
2025-03-07 23:14:56 +01:00
Panagiotis Papadopoulos
37f1525d0e build(copy-dist): remove unused paths 2025-03-07 23:14:56 +01:00
Panagiotis Papadopoulos
dbeae62709 build(copy-dist): simplify "copyNodeModuleFileOrFolder" copying
there's no benefit from stripping "node_modules/" from the string, to later add it again using the `DEST_DIR_NODE_MODULES` constant

=> just copy directly into the `DEST_DIR` folder and preserver the `node_modules` part in the path
2025-03-07 23:14:56 +01:00
Panagiotis Papadopoulos
ac3e96291a build(copy-dist): simplify "build" copying
there's no need to read the folder structure and then copy each single file in a loop

=> just copy the whole folder and be done with it :-)
2025-03-07 23:14:56 +01:00
Panagiotis Papadopoulos
9ac451e2b2 build(copy-dist): consolidate files and folder copying into one asset copying job
there's no benefit in having them split up like before
2025-03-07 23:14:56 +01:00
Panagiotis Papadopoulos
dbc2df0820 build(copy-dist): consolidate folder copying
the "srcDirsToCopy" block is useless now, we can just use the previous dirsToCopy to achieve the exact same thing
2025-03-07 23:14:56 +01:00
Panagiotis Papadopoulos
24382d8176 build(copy-dist): avoid copying over the app dir into dist
we have the bundled "app-dist" already in the "dist", copying over the original unbundled "app" folder serves no benefit here
2025-03-07 23:14:56 +01:00
Panagiotis Papadopoulos
af5e4ee3b5 build(copy-dist): copy over required folders/files from "public" folder 2025-03-07 23:14:56 +01:00
Panagiotis Papadopoulos
135101f57b build(copy-dist): do not copy build folder into src folder
stop the build folder from being copied into the dist/src subfolder
→ there is no sense in doing that
→ the contents of the build folder are corretly copied previously already (see line 26ff)
2025-03-07 23:14:56 +01:00
Panagiotis Papadopoulos
60a2b56636 chore(copy-dist): removee unnecesary copy of tsconfig.webpack.json
webpack bundling already ran before this script, so there is no need to copy this file over
2025-03-07 23:14:56 +01:00
Panagiotis Papadopoulos
e483cbca3c build(tsconfig): remove unnecessary exclude lines
these folder are already "excluded" implicitly, since we only include "./src" folder
2025-03-07 23:14:56 +01:00
Panagiotis Papadopoulos
3e307f4711 build(scripts): add "build:clean" script for removing dist and build folders 2025-03-07 23:14:56 +01:00
Panagiotis Papadopoulos
6c4a1732ad build(copy-trilium): use npm run build:ts 2025-03-07 23:14:56 +01:00
Panagiotis Papadopoulos
d0bb5f9768 build(scripts): add webpack progress flag 2025-03-07 23:14:56 +01:00
Panagiotis Papadopoulos
3a87d71073 build(scripts): add build:ts and update build:prepare-dist
since we build into the build folder -> we should also clean the folder before building as well

also it makes sense to run tsc first, as it runs faster, so if there's any TS errors, we will have a faster failing build
2025-03-07 23:14:56 +01:00
Panagiotis Papadopoulos
e0c0086eb3 build(tsconfig): fix glob for build config
not sure why, but seems like it doesn't like `[jt]s` – which causes it to skip certain .d.ts files, making tsc fail
2025-03-07 23:14:56 +01:00
Panagiotis Papadopoulos
2be9389f3b build(webpack): change to nosources-source-map
as per https://webpack.js.org/configuration/devtool/#production

serving the `source-map` file to "normal" users seems to be not recommended, so instead let's go with `nosources-source-map`:

a) this drastically reduces app-dist folder size from 20MB down to 8.7MB
b) it still allows for stack traces
2025-03-07 23:14:56 +01:00
Panagiotis Papadopoulos
745b294ca1 build(webpack): output webpack build in build folder
output the bundled files directly in the build folder
a) keeps the src folder clean from build output
b) it saves us some "manual" copying work
2025-03-07 23:14:56 +01:00
Panagiotis Papadopoulos
cefc402263 build: add separate tsconfig.build.json
this prevents tsc from unnecessarily transpiling the frontend part as well:
previously it was transpiled by tsc, but the files got discarded and replaced by the files built by webpack.

speeds up tsc command a bit as well:
from 14 seconds to ~8 secs
2025-03-07 23:14:56 +01:00
Elian Doran
a6e7f98f69
chore(release): 0.92.3-beta v0.92.3-beta 2025-03-07 23:59:10 +02:00
Elian Doran
e76601cd21
fix(bin): empty package.json 2025-03-07 23:58:41 +02:00
Elian Doran
e252b491ba
chore(bin): make less error-tolerant 2025-03-07 23:57:31 +02:00
Elian Doran
555dcc956e
chore(release): 0.92.3-beta 2025-03-07 23:55:26 +02:00
Elian Doran
3958312651
fix(e2e): flaky test due to navigation 2025-03-07 20:34:08 +02:00
Elian Doran
eb19e31fc3
fix(e2e): tests failing when run locally 2025-03-07 20:34:01 +02:00
Elian Doran
9d05fedc69
Merge pull request #1355 from TriliumNext/renovate/npm-axios-vulnerability
fix(deps): update dependency axios to v1.8.2 [security]
2025-03-07 20:25:21 +02:00
Elian Doran
cbd6278a0b
Merge pull request #1348 from TriliumNext/renovate/electron-34.x
chore(deps): update dependency electron to v34.3.1
2025-03-07 20:14:30 +02:00
Elian Doran
f6b52f5ce9
Merge pull request #1349 from TriliumNext/renovate/vitest-monorepo
chore(deps): update vitest monorepo to v3.0.8
2025-03-07 20:14:17 +02:00
renovate[bot]
efc57e383c
fix(deps): update dependency axios to v1.8.2 [security] 2025-03-07 18:13:51 +00:00
Elian Doran
40d6a28751
Merge pull request #1350 from TriliumNext/renovate/force-graph-1.x
fix(deps): update dependency force-graph to v1.49.3
2025-03-07 20:13:43 +02:00
Elian Doran
73791211c5
Merge pull request #1351 from TriliumNext/renovate/playwright-monorepo
chore(deps): update dependency @playwright/test to v1.51.0
2025-03-07 20:13:18 +02:00
Elian Doran
b0f86af57e
Merge branch 'develop' into renovate/playwright-monorepo 2025-03-07 20:13:10 +02:00
Elian Doran
4c6556cf18
Merge pull request #1352 from TriliumNext/renovate/happy-dom-monorepo
chore(deps): update dependency happy-dom to v17.3.0
2025-03-07 20:12:57 +02:00
Elian Doran
3465bc3f1a
Merge branch 'develop' into renovate/happy-dom-monorepo 2025-03-07 19:44:26 +02:00
Elian Doran
c1c9bf9122
Merge branch 'develop' into renovate/playwright-monorepo 2025-03-07 19:44:24 +02:00
Elian Doran
02b50703b2
Merge branch 'develop' into renovate/force-graph-1.x 2025-03-07 19:44:19 +02:00
Elian Doran
ab104af9ac
Merge branch 'develop' into renovate/vitest-monorepo 2025-03-07 19:44:16 +02:00
Elian Doran
178a58375a
Merge branch 'develop' into renovate/electron-34.x 2025-03-07 19:43:42 +02:00
Elian Doran
313d418345
fix(test): rollback database version 2025-03-07 10:23:02 +02:00
renovate[bot]
633369b5bd
chore(deps): update dependency happy-dom to v17.3.0 2025-03-07 01:27:34 +00:00
renovate[bot]
06d5abded4
chore(deps): update dependency @playwright/test to v1.51.0 2025-03-07 01:27:24 +00:00
renovate[bot]
41368db8b6
fix(deps): update dependency force-graph to v1.49.3 2025-03-07 01:27:12 +00:00
renovate[bot]
4ff3b87f23
chore(deps): update vitest monorepo to v3.0.8 2025-03-07 01:27:02 +00:00