RocketChat / RocketChat/EmbeddedChat

chore: dependency cleanup and workspace optimization

Open
#1,097 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
JavaScript
Stars
165
Forks
381
Avg merge
1d 2h
Merged PRs (30d)
1

Description

Analysis of the project's dependency tree revealed several unused packages, redundant dev-dependencies across workspace packages, and opportunities for performance optimization. Cleaning these up will reduce the node_modules size (currently ~1.5GB), improve installation times, and lighten the final build artifacts.


Findings

The following packages are listed in package.json but are not imported or used in the source code:

  • Root: esbuild
  • @embeddedchat/react: schedule, identity-obj-proxy, jest, babel-jest
  • @embeddedchat/ui-elements: schedule, identity-obj-proxy, jest, babel-jest, @rocket.chat/icons
  • @embeddedchat/ui-kit: schedule, identity-obj-proxy, jest, babel-jest, color
  • @embeddedchat/markups: schedule, identity-obj-proxy, jest, babel-jest
  • @embeddedchat/api: rollup-plugin-serve

Redundant Dependencies (Hoisting)

The following packages are duplicated across multiple workspace packages. Hoisting them to the root package.json will optimize the dependency tree:

  • @rollup/plugin-json (4 packages)
  • @emotion/babel-preset-css-prop (4 packages)
  • @emotion/react (4 packages)
  • normalize.css (3 packages)
  • prop-types (4 packages)
  • rollup-plugin-analyzer (3 packages)
  • rollup-plugin-terser (3 packages)

Build Tooling Inconsistencies
  • Unused Dev Tools: concurrently, npm-run-all, and deepmerge appear in devDependencies but are not utilized in scripts or source.
  • Rollup Versions: Inconsistent versions across packages (^2.70.1 vs ^3.23.0).

Proposed Changes

  • Remove unused packages by pruning the relevant package.json files in each workspace.
  • Hoist common devDependencies to the root level.
  • Standardize versions of Rollup and other build-related plugins across the monorepo.

Expected Impact

  • Reduced node_modules footprint.
  • Faster CI/CD pipelines due to lower installation overhead.
  • Cleaner dependency graph and easier long-term maintenance.

Additional Context

Analysis was performed via static code search and dependency usage metrics. The current node_modules size is approximately 1.5GB.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Review the root and listed workspace package.json files, then compare their dependencies with imports, scripts, and the existing Rollup versions. Remove only confirmed unused entries, hoist the specified shared dependencies, and standardize the build-tool versions. Done means the dependency tree and node_modules footprint are reduced without breaking the workspace build.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, react, rollup
Domain
build-system, tooling
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.