Skip to content

chore: remove unused devDependencies - #242

Merged
nicomiguelino merged 3 commits into
masterfrom
chore/remove-unused-dependencies-2026.08.14
Aug 14, 2026
Merged

chore: remove unused devDependencies#242
nicomiguelino merged 3 commits into
masterfrom
chore/remove-unused-dependencies-2026.08.14

Conversation

@nicomiguelino

Copy link
Copy Markdown
Collaborator

Summary

  • Removes five devDependencies with no usage anywhere in the codebase: @babel/preset-typescript, @testing-library/jest-dom, @types/jest, @types/jsdom, style-loader
  • Confirmed unused via depcheck plus manual grep and config checks (webpack, eslint, tsconfig)
  • webpack uses ts-loader for TypeScript, so @babel/preset-typescript is redundant
  • @testing-library/jest-dom, @types/jest, and @types/jsdom are leftovers from a previous jest based test setup, since replaced by Jasmine
  • style-loader is unused; MiniCssExtractPlugin.loader is used instead
  • Reduces node_modules by roughly 9MB (288M to 279M)
  • puppeteer is also unused but is addressed separately in a still open PR, so it was left untouched here to avoid conflicts

Removes five devDependencies with no usage anywhere in the codebase, confirmed via depcheck and manual grep/config checks:

- @babel/preset-typescript: webpack uses ts-loader for TypeScript, not babel
- @testing-library/jest-dom: no imports found in src or spec
- @types/jest: not referenced, tsconfig types array does not include it
- @types/jsdom: jsdom itself is only used in plain .js files outside tsconfig scope
- style-loader: MiniCssExtractPlugin.loader is used instead

Verified with npm test, lint check, tsc, and a production build.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR cleans up the project’s development dependency graph by removing several devDependencies that are no longer referenced by build, lint, or test configuration, aligning the repo with its current TypeScript (ts-loader) and Jasmine-based test setup.

Changes:

  • Removed unused devDependencies from package.json: @babel/preset-typescript, @testing-library/jest-dom, @types/jest, @types/jsdom, and style-loader.
  • Updated package-lock.json to reflect the removed direct devDependencies and prune related no-longer-needed packages.

Reviewed changes

Copilot reviewed 1 out of 2 changed files in this pull request and generated no comments.

File Description
package.json Removes unused direct devDependencies from the project’s dev toolchain.
package-lock.json Regenerates lockfile to drop the removed direct dependencies and associated packages where applicable.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Copilot AI review requested due to automatic review settings August 14, 2026 16:22

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 1 out of 2 changed files in this pull request and generated no new comments.

Suppressed comments (1)

package.json:15

  • @babel/preset-typescript was removed from devDependencies, but it is still pulled in transitively via babel-preset-react-app (used by spec/support/jasmine.js with presets: ['react-app']). If the intent is to actually eliminate this package from the install tree (and realize the node_modules size reduction), you’ll need to replace/remove babel-preset-react-app or switch the Babel preset configuration to an explicit preset list that doesn’t include TypeScript, then regenerate the lockfile.
    "@babel/core": "^7.28.4",
    "@babel/preset-env": "^7.28.3",
    "@babel/preset-react": "^7.27.1",
    "@babel/register": "^7.28.3",

…on CSS

sass-loader auto-switches dart-sass to compressed output style whenever
webpack runs in production mode. Compressed output prepends a UTF-8 BOM
to each compiled stylesheet, and since bootstrap-icons.scss and
bootstrap.scss are compiled as separate webpack modules, each carries
its own BOM. postcss (used internally by css-loader) round-trips that
BOM through parse/stringify, so when MiniCssExtractPlugin concatenates
the modules into one popup.css, Bootstrap's own BOM lands directly in
front of its `:root,[data-bs-theme=light]` selector, invalidating it.
That silently breaks every Bootstrap CSS custom property, including
the sans-serif font stack, so the popup fell back to a serif font in
any production build.

Forcing sassOptions.style to 'expanded' keeps dart-sass from emitting
the BOM in the first place, regardless of webpack mode.
Copilot AI review requested due to automatic review settings August 14, 2026 17:59

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 2 out of 3 changed files in this pull request and generated no new comments.

@nicomiguelino
nicomiguelino merged commit e0c53f8 into master Aug 14, 2026
8 checks passed
@nicomiguelino
nicomiguelino deleted the chore/remove-unused-dependencies-2026.08.14 branch August 14, 2026 21:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants