From ef38017418c89d5a178e79ef163239cf4ad08563 Mon Sep 17 00:00:00 2001 From: Matthieu Riegler Date: Mon, 20 Apr 2026 23:10:09 +0200 Subject: [PATCH] build: move devtools only deps out of the workspace This reduces the clutering of the workspace package. --- MODULE.bazel | 1 + devtools/BUILD.bazel | 5 ++ devtools/package.json | 14 +++++ devtools/projects/ng-devtools/BUILD.bazel | 8 +-- .../devtools-tabs/injector-tree/BUILD.bazel | 4 +- .../bargraph-formatter/BUILD.bazel | 2 +- .../flamegraph-visualizer/BUILD.bazel | 2 +- .../tree-map-visualizer/BUILD.bazel | 2 +- .../lib/shared/signals-visualizer/BUILD.bazel | 6 +-- .../lib/shared/tree-visualizer/BUILD.bazel | 4 +- .../shell-browser/src/app/BUILD.bazel | 1 + devtools/src/app/demo-app/BUILD.bazel | 4 +- package.json | 8 --- pnpm-lock.yaml | 52 ++++++++++--------- pnpm-workspace.yaml | 1 + 15 files changed, 66 insertions(+), 48 deletions(-) create mode 100644 devtools/package.json diff --git a/MODULE.bazel b/MODULE.bazel index 164343f05ce..d99626db4da 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -86,6 +86,7 @@ npm.npm_translate_lock( "//adev:package.json", "//adev/shared-docs:package.json", "//adev/shared-docs/pipeline/api-gen:package.json", + "//devtools:package.json", "//integration:package.json", "//modules:package.json", "//packages/animations:package.json", diff --git a/devtools/BUILD.bazel b/devtools/BUILD.bazel index 564c13c3dd7..2b70eebb563 100644 --- a/devtools/BUILD.bazel +++ b/devtools/BUILD.bazel @@ -1,8 +1,13 @@ load("@bazel_skylib//rules:common_settings.bzl", "bool_flag") +load("@npm//:defs.bzl", "npm_link_all_packages") load("//devtools/tools:defaults.bzl", "ts_config") package(default_visibility = ["//visibility:public"]) +npm_link_all_packages( + name = "node_modules", +) + bool_flag( name = "debug", build_setting_default = False, diff --git a/devtools/package.json b/devtools/package.json new file mode 100644 index 00000000000..4677d3d8fff --- /dev/null +++ b/devtools/package.json @@ -0,0 +1,14 @@ +{ + "dependencies": { + "d3": "^7.0.0", + "dagre-d3-es": "^7.0.14", + "ngx-flamegraph": "0.1.1", + "todomvc-app-css": "^2.3.0", + "todomvc-common": "^1.0.5", + "webtreemap": "^2.0.1" + }, + "devDependencies": { + "@types/d3": "^7.4.3", + "@types/firefox-webext-browser": "^143.0.0" + } +} diff --git a/devtools/projects/ng-devtools/BUILD.bazel b/devtools/projects/ng-devtools/BUILD.bazel index 0bcf5799089..d38ab0d1146 100644 --- a/devtools/projects/ng-devtools/BUILD.bazel +++ b/devtools/projects/ng-devtools/BUILD.bazel @@ -14,11 +14,11 @@ ng_project( "//:node_modules/@angular/core", "//:node_modules/@angular/forms", "//:node_modules/@angular/material", - "//:node_modules/@types/d3", - "//:node_modules/d3", - "//:node_modules/ngx-flamegraph", "//:node_modules/rxjs", - "//:node_modules/webtreemap", + "//devtools:node_modules/@types/d3", + "//devtools:node_modules/d3", + "//devtools:node_modules/ngx-flamegraph", + "//devtools:node_modules/webtreemap", "//devtools/projects/ng-devtools/src", "//devtools/projects/protocol", ], diff --git a/devtools/projects/ng-devtools/src/lib/devtools-tabs/injector-tree/BUILD.bazel b/devtools/projects/ng-devtools/src/lib/devtools-tabs/injector-tree/BUILD.bazel index 575ae90956e..d83e350e109 100644 --- a/devtools/projects/ng-devtools/src/lib/devtools-tabs/injector-tree/BUILD.bazel +++ b/devtools/projects/ng-devtools/src/lib/devtools-tabs/injector-tree/BUILD.bazel @@ -24,9 +24,9 @@ ng_project( "//:node_modules/@angular/common", "//:node_modules/@angular/core", "//:node_modules/@angular/material", - "//:node_modules/@types/d3", - "//:node_modules/d3", "//:node_modules/rxjs", + "//devtools:node_modules/@types/d3", + "//devtools:node_modules/d3", "//devtools/projects/ng-devtools/src/lib/devtools-tabs/injector-tree/injector-providers", "//devtools/projects/ng-devtools/src/lib/shared/docs-ref-button", "//devtools/projects/ng-devtools/src/lib/shared/split", diff --git a/devtools/projects/ng-devtools/src/lib/devtools-tabs/profiler/recording-timeline/record-formatter/bargraph-formatter/BUILD.bazel b/devtools/projects/ng-devtools/src/lib/devtools-tabs/profiler/recording-timeline/record-formatter/bargraph-formatter/BUILD.bazel index 8b6e862932c..76a1ca92904 100644 --- a/devtools/projects/ng-devtools/src/lib/devtools-tabs/profiler/recording-timeline/record-formatter/bargraph-formatter/BUILD.bazel +++ b/devtools/projects/ng-devtools/src/lib/devtools-tabs/profiler/recording-timeline/record-formatter/bargraph-formatter/BUILD.bazel @@ -11,9 +11,9 @@ ts_project( ), deps = [ "//:node_modules/@angular/core", - "//:node_modules/ngx-flamegraph", "//:node_modules/rxjs", "//:node_modules/tslib", + "//devtools:node_modules/ngx-flamegraph", "//devtools/projects/ng-devtools/src/lib/devtools-tabs/profiler/recording-timeline/record-formatter", "//devtools/projects/protocol", ], diff --git a/devtools/projects/ng-devtools/src/lib/devtools-tabs/profiler/recording-timeline/recording-visualizer/flamegraph-visualizer/BUILD.bazel b/devtools/projects/ng-devtools/src/lib/devtools-tabs/profiler/recording-timeline/recording-visualizer/flamegraph-visualizer/BUILD.bazel index 017bf102c28..b50eaa83c5a 100644 --- a/devtools/projects/ng-devtools/src/lib/devtools-tabs/profiler/recording-timeline/recording-visualizer/flamegraph-visualizer/BUILD.bazel +++ b/devtools/projects/ng-devtools/src/lib/devtools-tabs/profiler/recording-timeline/recording-visualizer/flamegraph-visualizer/BUILD.bazel @@ -21,7 +21,7 @@ ng_project( ], deps = [ "//:node_modules/@angular/core", - "//:node_modules/ngx-flamegraph", + "//devtools:node_modules/ngx-flamegraph", "//devtools/projects/ng-devtools/src/lib/application-services:theme", "//devtools/projects/ng-devtools/src/lib/devtools-tabs/profiler/recording-timeline/record-formatter/flamegraph-formatter", "//devtools/projects/ng-devtools/src/lib/devtools-tabs/profiler/recording-timeline/recording-visualizer:recording-visualizer-types", diff --git a/devtools/projects/ng-devtools/src/lib/devtools-tabs/profiler/recording-timeline/recording-visualizer/tree-map-visualizer/BUILD.bazel b/devtools/projects/ng-devtools/src/lib/devtools-tabs/profiler/recording-timeline/recording-visualizer/tree-map-visualizer/BUILD.bazel index eb024927544..136644bd647 100644 --- a/devtools/projects/ng-devtools/src/lib/devtools-tabs/profiler/recording-timeline/recording-visualizer/tree-map-visualizer/BUILD.bazel +++ b/devtools/projects/ng-devtools/src/lib/devtools-tabs/profiler/recording-timeline/recording-visualizer/tree-map-visualizer/BUILD.bazel @@ -22,7 +22,7 @@ ng_project( deps = [ "//:node_modules/@angular/core", "//:node_modules/rxjs", - "//:node_modules/webtreemap", + "//devtools:node_modules/webtreemap", "//devtools/projects/ng-devtools/src/lib/devtools-tabs/profiler/recording-timeline/record-formatter/tree-map-formatter", "//devtools/projects/protocol", ], diff --git a/devtools/projects/ng-devtools/src/lib/shared/signals-visualizer/BUILD.bazel b/devtools/projects/ng-devtools/src/lib/shared/signals-visualizer/BUILD.bazel index 2e0791ad8fc..b086946612e 100644 --- a/devtools/projects/ng-devtools/src/lib/shared/signals-visualizer/BUILD.bazel +++ b/devtools/projects/ng-devtools/src/lib/shared/signals-visualizer/BUILD.bazel @@ -24,9 +24,9 @@ ng_project( deps = [ "//:node_modules/@angular/core", "//:node_modules/@angular/material", - "//:node_modules/@types/d3", - "//:node_modules/d3", - "//:node_modules/dagre-d3-es", + "//devtools:node_modules/@types/d3", + "//devtools:node_modules/d3", + "//devtools:node_modules/dagre-d3-es", "//devtools/projects/ng-devtools/src/lib/shared/button", "//devtools/projects/ng-devtools/src/lib/shared/signal-graph", "//devtools/projects/protocol", diff --git a/devtools/projects/ng-devtools/src/lib/shared/tree-visualizer/BUILD.bazel b/devtools/projects/ng-devtools/src/lib/shared/tree-visualizer/BUILD.bazel index bc297798c1b..c61eaf7c6ac 100644 --- a/devtools/projects/ng-devtools/src/lib/shared/tree-visualizer/BUILD.bazel +++ b/devtools/projects/ng-devtools/src/lib/shared/tree-visualizer/BUILD.bazel @@ -20,8 +20,8 @@ ng_project( ], deps = [ "//:node_modules/@angular/core", - "//:node_modules/@types/d3", - "//:node_modules/d3", + "//devtools:node_modules/@types/d3", + "//devtools:node_modules/d3", "//devtools/projects/ng-devtools/src/lib/shared/utils", ], ) diff --git a/devtools/projects/shell-browser/src/app/BUILD.bazel b/devtools/projects/shell-browser/src/app/BUILD.bazel index fc92a8d7552..8ab697bcddd 100644 --- a/devtools/projects/shell-browser/src/app/BUILD.bazel +++ b/devtools/projects/shell-browser/src/app/BUILD.bazel @@ -75,6 +75,7 @@ ts_project( "//:node_modules/@angular/cdk", "//:node_modules/@angular/core", "//:node_modules/@types/chrome", + "//devtools:node_modules/@types/firefox-webext-browser", "//devtools/projects/ng-devtools", "//devtools/projects/protocol", ], diff --git a/devtools/src/app/demo-app/BUILD.bazel b/devtools/src/app/demo-app/BUILD.bazel index 86b66736b16..78d819693cc 100644 --- a/devtools/src/app/demo-app/BUILD.bazel +++ b/devtools/src/app/demo-app/BUILD.bazel @@ -23,8 +23,8 @@ _STYLE_LABELS = [ npm_sass_library( name = "todo_mvc", deps = [ - "//:node_modules/todomvc-app-css", - "//:node_modules/todomvc-common", + "//devtools:node_modules/todomvc-app-css", + "//devtools:node_modules/todomvc-common", ], ) diff --git a/package.json b/package.json index 2466fc82249..a04aa11c1e8 100644 --- a/package.json +++ b/package.json @@ -91,7 +91,6 @@ "@types/babel__generator": "7.27.0", "@types/chrome": "^0.1.0", "@types/dom-navigation": "^1.0.5", - "@types/firefox-webext-browser": "^143.0.0", "@types/jasmine": "^6.0.0", "@types/jasminewd2": "^2.0.8", "@types/node": "^20.14.8", @@ -107,8 +106,6 @@ "angular-mocks-1.7": "npm:angular-mocks@1.7", "angular-mocks-1.8": "npm:angular-mocks@1.8", "chalk": "^5.4.1", - "d3": "^7.0.0", - "dagre-d3-es": "^7.0.14", "diff": "^9.0.0", "domino": "https://github.com/angular/domino.git#928dffb9d9431b2cd2a73d7b940d1575f221e072", "esbuild": "0.28.0", @@ -122,7 +119,6 @@ "karma-jasmine": "^5.0.0", "karma-sourcemap-loader": "^0.4.0", "magic-string": "^0.30.8", - "ngx-flamegraph": "0.1.1", "protractor": "^7.0.0", "reflect-metadata": "^0.2.0", "rollup": "4.60.1", @@ -132,12 +128,9 @@ "source-map": "0.7.6", "source-map-support": "0.5.21", "tinyglobby": "^0.2.12", - "todomvc-app-css": "^2.3.0", - "todomvc-common": "^1.0.5", "tslib": "^2.3.0", "tslint": "6.1.3", "typescript": "6.0.2", - "webtreemap": "^2.0.1", "ws": "^8.15.0", "yargs": "^18.0.0", "zone.js": "0.16.1" @@ -156,7 +149,6 @@ "@types/adm-zip": "^0.5.0", "@types/cldr": "^7.1.4", "@types/cldrjs": "^0.4.22", - "@types/d3": "^7.4.3", "@types/tmp": "^0.2.6", "adm-zip": "^0.5.10", "cldr": "8.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bac45d2e7f3..7e2384845d9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -123,9 +123,6 @@ importers: '@types/dom-navigation': specifier: ^1.0.5 version: 1.0.7 - '@types/firefox-webext-browser': - specifier: ^143.0.0 - version: 143.0.0 '@types/jasmine': specifier: ^6.0.0 version: 6.0.0 @@ -171,12 +168,6 @@ importers: chalk: specifier: ^5.4.1 version: 5.6.2 - d3: - specifier: ^7.0.0 - version: 7.9.0 - dagre-d3-es: - specifier: ^7.0.14 - version: 7.0.14 diff: specifier: ^9.0.0 version: 9.0.0 @@ -216,9 +207,6 @@ importers: magic-string: specifier: ^0.30.8 version: 0.30.21 - ngx-flamegraph: - specifier: 0.1.1 - version: 0.1.1(@angular/common@packages+common)(@angular/core@packages+core) protractor: specifier: ^7.0.0 version: 7.0.0 @@ -246,12 +234,6 @@ importers: tinyglobby: specifier: ^0.2.12 version: 0.2.16 - todomvc-app-css: - specifier: ^2.3.0 - version: 2.4.3 - todomvc-common: - specifier: ^1.0.5 - version: 1.0.5 tslib: specifier: ^2.3.0 version: 2.8.1 @@ -261,9 +243,6 @@ importers: typescript: specifier: 6.0.2 version: 6.0.2 - webtreemap: - specifier: ^2.0.1 - version: 2.0.1 ws: specifier: ^8.15.0 version: 8.20.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) @@ -310,9 +289,6 @@ importers: '@types/cldrjs': specifier: ^0.4.22 version: 0.4.29 - '@types/d3': - specifier: ^7.4.3 - version: 7.4.3 '@types/tmp': specifier: ^0.2.6 version: 0.2.6 @@ -790,6 +766,34 @@ importers: specifier: ^4.0.0 version: 4.1.4(@opentelemetry/api@1.9.1)(@types/node@24.12.2)(esbuild@0.28.0)(jiti@2.6.1)(jsdom@29.0.2)(less@4.6.4)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) + devtools: + dependencies: + d3: + specifier: ^7.0.0 + version: 7.9.0 + dagre-d3-es: + specifier: ^7.0.14 + version: 7.0.14 + ngx-flamegraph: + specifier: 0.1.1 + version: 0.1.1(@angular/common@packages+common)(@angular/core@packages+core) + todomvc-app-css: + specifier: ^2.3.0 + version: 2.4.3 + todomvc-common: + specifier: ^1.0.5 + version: 1.0.5 + webtreemap: + specifier: ^2.0.1 + version: 2.0.1 + devDependencies: + '@types/d3': + specifier: ^7.4.3 + version: 7.4.3 + '@types/firefox-webext-browser': + specifier: ^143.0.0 + version: 143.0.0 + integration: dependencies: '@angular/animations': diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 1ed8143d93d..09e8f5ec373 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -4,6 +4,7 @@ packages: - adev/shared-docs - adev/shared-docs/pipeline/api-gen - dev-app/ + - devtools/ - modules - integration - packages/animations/