From 4df109db6ca1f523d32c0a2ed56d9abf239ff98c Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 3 Jun 2024 11:45:44 +0200 Subject: [PATCH 01/13] add workspaces + split npm and cms build scripts --- src/Umbraco.Web.UI.Client/package.json | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/package.json b/src/Umbraco.Web.UI.Client/package.json index bc2aa0cb85..770784a054 100644 --- a/src/Umbraco.Web.UI.Client/package.json +++ b/src/Umbraco.Web.UI.Client/package.json @@ -124,12 +124,17 @@ "email": "backoffice@umbraco.com", "url": "https://umbraco.com" }, + "workspaces": [ + "./src/packages/language" + ], "scripts": { "backoffice:test:e2e": "npx playwright test", "build-storybook": "npm run wc-analyze && storybook build", - "build:for:cms": "npm run build && node ./devops/build/copy-to-cms.js", + "build:for:cms": "npm run build && npm run build:workspaces && node ./devops/build/copy-to-cms.js", + "build:for:npm": "npm run build", "build:for:static": "vite build", "build:vite": "tsc && vite build --mode staging", + "build:workspaces": "npm run build -ws --if-present", "build": "tsc --project ./src/tsconfig.build.json && rollup -c ./src/rollup.config.js && npm run package:validate && npm run generate:manifest && npm run check:paths", "check": "npm run lint:errors && npm run compile && npm run build-storybook && npm run generate:jsonschema:dist", "check:paths": "node ./devops/build/check-path-length.js src 140", From fd966b7682eddd9e72f2744b3daa658ff5e52aa4 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 3 Jun 2024 11:51:06 +0200 Subject: [PATCH 02/13] validate cms package after workspace builds --- src/Umbraco.Web.UI.Client/package.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/package.json b/src/Umbraco.Web.UI.Client/package.json index 770784a054..516291d3b6 100644 --- a/src/Umbraco.Web.UI.Client/package.json +++ b/src/Umbraco.Web.UI.Client/package.json @@ -130,12 +130,12 @@ "scripts": { "backoffice:test:e2e": "npx playwright test", "build-storybook": "npm run wc-analyze && storybook build", - "build:for:cms": "npm run build && npm run build:workspaces && node ./devops/build/copy-to-cms.js", - "build:for:npm": "npm run build", + "build:for:cms": "npm run build && npm run build:workspaces && npm run generate:manifest && npm run package:validate && node ./devops/build/copy-to-cms.js", + "build:for:npm": "npm run build && npm run generate:manifest && npm run package:validate", "build:for:static": "vite build", "build:vite": "tsc && vite build --mode staging", "build:workspaces": "npm run build -ws --if-present", - "build": "tsc --project ./src/tsconfig.build.json && rollup -c ./src/rollup.config.js && npm run package:validate && npm run generate:manifest && npm run check:paths", + "build": "tsc --project ./src/tsconfig.build.json && rollup -c ./src/rollup.config.js", "check": "npm run lint:errors && npm run compile && npm run build-storybook && npm run generate:jsonschema:dist", "check:paths": "node ./devops/build/check-path-length.js src 140", "compile": "tsc", @@ -168,7 +168,7 @@ "wc-analyze": "wca **/*.element.ts --outFile dist-cms/custom-elements.json", "generate:tsconfig": "node ./devops/tsconfig/index.js", "generate:manifest": "node ./devops/build/create-umbraco-package.js", - "package:validate": "node ./devops/package/validate-exports.js", + "package:validate": "node ./devops/package/validate-exports.js && npm run check:paths", "generate:ui-api-docs": "typedoc --options typedoc.config.js" }, "engines": { From 8384487bd6bf7ee3c9fe872247fac7bfc3c6077f Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 3 Jun 2024 11:56:40 +0200 Subject: [PATCH 03/13] change to dictionary --- src/Umbraco.Web.UI.Client/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/package.json b/src/Umbraco.Web.UI.Client/package.json index 516291d3b6..66656e7e73 100644 --- a/src/Umbraco.Web.UI.Client/package.json +++ b/src/Umbraco.Web.UI.Client/package.json @@ -125,7 +125,7 @@ "url": "https://umbraco.com" }, "workspaces": [ - "./src/packages/language" + "./src/packages/dictionary" ], "scripts": { "backoffice:test:e2e": "npx playwright test", From 69521d73e2743f762d57a827659c2136bdcc0e97 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 3 Jun 2024 11:57:07 +0200 Subject: [PATCH 04/13] add package json + vite config --- .../src/packages/dictionary/package.json | 8 +++++++ .../src/packages/dictionary/vite.config.ts | 21 +++++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/dictionary/package.json create mode 100644 src/Umbraco.Web.UI.Client/src/packages/dictionary/vite.config.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/package.json b/src/Umbraco.Web.UI.Client/src/packages/dictionary/package.json new file mode 100644 index 0000000000..7ef2ba9c33 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/package.json @@ -0,0 +1,8 @@ +{ + "name": "@umbraco-backoffice/dictionary", + "private": true, + "type": "module", + "scripts": { + "build": "vite build" + } +} \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/vite.config.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/vite.config.ts new file mode 100644 index 0000000000..232d1c72ec --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/vite.config.ts @@ -0,0 +1,21 @@ +import { defineConfig } from 'vite'; +import { rmSync } from 'fs'; + +const dist = '../../../dist-cms/packages/dictionary'; + +// delete the unbundled dist folder +rmSync(dist, { recursive: true, force: true }); + +export default defineConfig({ + build: { + lib: { + entry: ['index.ts', 'manifests.ts', 'umbraco-package.ts'], + formats: ['es'], + }, + outDir: dist, + //sourcemap: true, + rollupOptions: { + external: [/^@umbraco/], + }, + }, +}); From 2c337940bf581c9107be925228947ab5fb460362 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 3 Jun 2024 12:05:28 +0200 Subject: [PATCH 05/13] Update package-lock.json --- src/Umbraco.Web.UI.Client/package-lock.json | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/package-lock.json b/src/Umbraco.Web.UI.Client/package-lock.json index 4647b601ad..fd02fcdbf1 100644 --- a/src/Umbraco.Web.UI.Client/package-lock.json +++ b/src/Umbraco.Web.UI.Client/package-lock.json @@ -8,6 +8,9 @@ "name": "@umbraco-cms/backoffice", "version": "14.1.0", "license": "MIT", + "workspaces": [ + "./src/packages/dictionary" + ], "dependencies": { "@types/diff": "^5.2.1", "@types/dompurify": "^3.0.5", @@ -6801,6 +6804,10 @@ "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/@umbraco-backoffice/dictionary": { + "resolved": "src/packages/dictionary", + "link": true + }, "node_modules/@umbraco-ui/uui": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/@umbraco-ui/uui/-/uui-1.8.1.tgz", @@ -21158,6 +21165,7 @@ "type": "github", "url": "https://github.com/sponsors/wooorm" } - } + }, + "src/packages/dictionary": {} } } From ece1ba881319c4ec5ace8deccfe99bea3a91727e Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 3 Jun 2024 13:22:19 +0200 Subject: [PATCH 06/13] add source maps --- .../src/packages/dictionary/vite.config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/vite.config.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/vite.config.ts index 232d1c72ec..05a2d23672 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/vite.config.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/vite.config.ts @@ -13,7 +13,7 @@ export default defineConfig({ formats: ['es'], }, outDir: dist, - //sourcemap: true, + sourcemap: true, rollupOptions: { external: [/^@umbraco/], }, From 5e3cca51466fbe525381302dcff414508a96cd18 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 3 Jun 2024 13:30:20 +0200 Subject: [PATCH 07/13] set build target to es2022 --- src/Umbraco.Web.UI.Client/src/packages/dictionary/vite.config.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/vite.config.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/vite.config.ts index 05a2d23672..a4fc6826f8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/vite.config.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/vite.config.ts @@ -8,6 +8,7 @@ rmSync(dist, { recursive: true, force: true }); export default defineConfig({ build: { + target: 'es2022', lib: { entry: ['index.ts', 'manifests.ts', 'umbraco-package.ts'], formats: ['es'], From ea40cf7bea90eeffdb6ceee59f885b53ee677d0b Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 3 Jun 2024 14:14:25 +0200 Subject: [PATCH 08/13] add webhook package to workspaces --- src/Umbraco.Web.UI.Client/package-lock.json | 12 ++++++++++-- src/Umbraco.Web.UI.Client/package.json | 3 ++- .../src/packages/webhook/package.json | 8 ++++++++ 3 files changed, 20 insertions(+), 3 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/webhook/package.json diff --git a/src/Umbraco.Web.UI.Client/package-lock.json b/src/Umbraco.Web.UI.Client/package-lock.json index fd02fcdbf1..5ff77195e8 100644 --- a/src/Umbraco.Web.UI.Client/package-lock.json +++ b/src/Umbraco.Web.UI.Client/package-lock.json @@ -9,7 +9,8 @@ "version": "14.1.0", "license": "MIT", "workspaces": [ - "./src/packages/dictionary" + "./src/packages/dictionary", + "./src/packages/webhook" ], "dependencies": { "@types/diff": "^5.2.1", @@ -6808,6 +6809,10 @@ "resolved": "src/packages/dictionary", "link": true }, + "node_modules/@umbraco-backoffice/webhook": { + "resolved": "src/packages/webhook", + "link": true + }, "node_modules/@umbraco-ui/uui": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/@umbraco-ui/uui/-/uui-1.8.1.tgz", @@ -21166,6 +21171,9 @@ "url": "https://github.com/sponsors/wooorm" } }, - "src/packages/dictionary": {} + "src/packages/dictionary": { + "name": "@umbraco-backoffice/dictionary" + }, + "src/packages/webhook": {} } } diff --git a/src/Umbraco.Web.UI.Client/package.json b/src/Umbraco.Web.UI.Client/package.json index 66656e7e73..c74138ad9d 100644 --- a/src/Umbraco.Web.UI.Client/package.json +++ b/src/Umbraco.Web.UI.Client/package.json @@ -125,7 +125,8 @@ "url": "https://umbraco.com" }, "workspaces": [ - "./src/packages/dictionary" + "./src/packages/dictionary", + "./src/packages/webhook" ], "scripts": { "backoffice:test:e2e": "npx playwright test", diff --git a/src/Umbraco.Web.UI.Client/src/packages/webhook/package.json b/src/Umbraco.Web.UI.Client/src/packages/webhook/package.json new file mode 100644 index 0000000000..b5e4df3a99 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/webhook/package.json @@ -0,0 +1,8 @@ +{ + "name": "@umbraco-backoffice/webhook", + "private": true, + "type": "module", + "scripts": { + "build": "vite build" + } +} \ No newline at end of file From 65f45b2f95892c1b83f265e12de531ef57758e06 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 3 Jun 2024 14:14:35 +0200 Subject: [PATCH 09/13] add vite config --- .../src/packages/webhook/vite.config.ts | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/webhook/vite.config.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/webhook/vite.config.ts b/src/Umbraco.Web.UI.Client/src/packages/webhook/vite.config.ts new file mode 100644 index 0000000000..ed74382536 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/webhook/vite.config.ts @@ -0,0 +1,22 @@ +import { defineConfig } from 'vite'; +import { rmSync } from 'fs'; + +const dist = '../../../dist-cms/packages/webhook'; + +// delete the unbundled dist folder +rmSync(dist, { recursive: true, force: true }); + +export default defineConfig({ + build: { + target: 'es2022', + lib: { + entry: ['index.ts', 'manifests.ts', 'umbraco-package.ts'], + formats: ['es'], + }, + outDir: dist, + sourcemap: true, + rollupOptions: { + external: [/^@umbraco/], + }, + }, +}); From 1d15b5a9dfc70385acd42067e859fab32b001f90 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 3 Jun 2024 14:57:57 +0200 Subject: [PATCH 10/13] make default config export --- .../src/packages/dictionary/vite.config.ts | 14 ++--------- .../src/packages/webhook/vite.config.ts | 14 ++--------- .../src/vite-config-base.ts | 23 +++++++++++++++++++ 3 files changed, 27 insertions(+), 24 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/vite-config-base.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/vite.config.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/vite.config.ts index a4fc6826f8..27243c91ed 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/vite.config.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/vite.config.ts @@ -1,5 +1,6 @@ import { defineConfig } from 'vite'; import { rmSync } from 'fs'; +import { getDefaultConfig } from '../../vite-config-base'; const dist = '../../../dist-cms/packages/dictionary'; @@ -7,16 +8,5 @@ const dist = '../../../dist-cms/packages/dictionary'; rmSync(dist, { recursive: true, force: true }); export default defineConfig({ - build: { - target: 'es2022', - lib: { - entry: ['index.ts', 'manifests.ts', 'umbraco-package.ts'], - formats: ['es'], - }, - outDir: dist, - sourcemap: true, - rollupOptions: { - external: [/^@umbraco/], - }, - }, + ...getDefaultConfig({ dist }), }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/webhook/vite.config.ts b/src/Umbraco.Web.UI.Client/src/packages/webhook/vite.config.ts index ed74382536..4992fa7a97 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/webhook/vite.config.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/webhook/vite.config.ts @@ -1,5 +1,6 @@ import { defineConfig } from 'vite'; import { rmSync } from 'fs'; +import { getDefaultConfig } from '../../vite-config-base'; const dist = '../../../dist-cms/packages/webhook'; @@ -7,16 +8,5 @@ const dist = '../../../dist-cms/packages/webhook'; rmSync(dist, { recursive: true, force: true }); export default defineConfig({ - build: { - target: 'es2022', - lib: { - entry: ['index.ts', 'manifests.ts', 'umbraco-package.ts'], - formats: ['es'], - }, - outDir: dist, - sourcemap: true, - rollupOptions: { - external: [/^@umbraco/], - }, - }, + ...getDefaultConfig({ dist }), }); diff --git a/src/Umbraco.Web.UI.Client/src/vite-config-base.ts b/src/Umbraco.Web.UI.Client/src/vite-config-base.ts new file mode 100644 index 0000000000..3d9afd00f9 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/vite-config-base.ts @@ -0,0 +1,23 @@ +import { UserConfig } from 'vite'; + +interface UmbViteDefaultConfigArgs { + dist: string; + entry?: string[]; +} + +export const getDefaultConfig = (args: UmbViteDefaultConfigArgs): UserConfig => { + return { + build: { + target: 'es2022', + lib: { + entry: args.entry || ['index.ts', 'manifests.ts', 'umbraco-package.ts'], + formats: ['es'], + }, + outDir: args.dist, + sourcemap: true, + rollupOptions: { + external: [/^@umbraco/], + }, + }, + }; +}; From 1cfd051cf48b84fcfeda91ba4e9f29f8e75696dc Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 3 Jun 2024 15:05:09 +0200 Subject: [PATCH 11/13] allow direct imports of Vite --- src/Umbraco.Web.UI.Client/.eslintrc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/.eslintrc.json b/src/Umbraco.Web.UI.Client/.eslintrc.json index f8a724d5c1..db94153396 100644 --- a/src/Umbraco.Web.UI.Client/.eslintrc.json +++ b/src/Umbraco.Web.UI.Client/.eslintrc.json @@ -52,7 +52,7 @@ "local-rules/enforce-umbraco-external-imports": [ "error", { - "exceptions": ["@umbraco-cms", "@open-wc/testing", "@storybook", "msw", "."] + "exceptions": ["@umbraco-cms", "@open-wc/testing", "@storybook", "msw", ".", "vite"] } ], "local-rules/exported-string-constant-naming": [ From 5a15f68b70d379f5b67856d63e2637c9ea0a1df3 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 3 Jun 2024 15:05:17 +0200 Subject: [PATCH 12/13] add type --- src/Umbraco.Web.UI.Client/src/vite-config-base.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/vite-config-base.ts b/src/Umbraco.Web.UI.Client/src/vite-config-base.ts index 3d9afd00f9..3095dae448 100644 --- a/src/Umbraco.Web.UI.Client/src/vite-config-base.ts +++ b/src/Umbraco.Web.UI.Client/src/vite-config-base.ts @@ -1,4 +1,4 @@ -import { UserConfig } from 'vite'; +import type { UserConfig } from 'vite'; interface UmbViteDefaultConfigArgs { dist: string; From 4c4422a1bebb4527742cce3eef7c52c1424d28e1 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 4 Jun 2024 14:59:46 +0200 Subject: [PATCH 13/13] Update package-lock.json --- src/Umbraco.Web.UI.Client/package-lock.json | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/package-lock.json b/src/Umbraco.Web.UI.Client/package-lock.json index 50ca5fe648..5ff77195e8 100644 --- a/src/Umbraco.Web.UI.Client/package-lock.json +++ b/src/Umbraco.Web.UI.Client/package-lock.json @@ -9,7 +9,8 @@ "version": "14.1.0", "license": "MIT", "workspaces": [ - "./src/packages/dictionary" + "./src/packages/dictionary", + "./src/packages/webhook" ], "dependencies": { "@types/diff": "^5.2.1", @@ -6808,6 +6809,10 @@ "resolved": "src/packages/dictionary", "link": true }, + "node_modules/@umbraco-backoffice/webhook": { + "resolved": "src/packages/webhook", + "link": true + }, "node_modules/@umbraco-ui/uui": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/@umbraco-ui/uui/-/uui-1.8.1.tgz", @@ -21168,6 +21173,7 @@ }, "src/packages/dictionary": { "name": "@umbraco-backoffice/dictionary" - } + }, + "src/packages/webhook": {} } }