Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

eslint: avoid dev dependencies to reduce closure size #392126

Merged
merged 1 commit into from
Mar 24, 2025

Conversation

ciderale
Copy link
Contributor

Omitting npm dev dependencies reduces eslint closure size significantly. This is helpful when using eslint in build pipelines.
What is unclear to me, is there a specific reason to include the npm dev dependencies? Are they needed in some cases?

Following numbers from nix path-info --size --closure-size --human-readable on aarch64-darwin:

size of eslint closure remark
before: 438.3 MiB 2.7 GiB (includes apple-sdk, compiler, etc.)
after: 10.6 MiB 202.1 MiB (with npmInstallFlags --omit=dev)

Similar results on aarch64-linux (from within a docker container):

size of eslint closure
before: 546.3 MiB 2.1 GiB
after: 10.6 MiB 227.7 MiB

Things done

  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux (in docker container)
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)
    • sandbox = relaxed
    • sandbox = true
  • Tested, as applicable:
  • Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
  • Tested basic functionality of all binary files (usually in ./result/bin/)
  • 25.05 Release Notes (or backporting 24.11 and 25.05 Release notes)
    • (Package updates) Added a release notes entry if the change is major or breaking
    • (Module updates) Added a release notes entry if the change is significant
    • (Module addition) Added a release notes entry if adding a new NixOS module
  • Fits CONTRIBUTING.md.

Add a 👍 reaction to pull requests you find important.

Omitting npm dev dependencies reduces eslint closure size significantly.
This is helpful when using eslint in build pipelines. Following numbers
from `nix path-info --size --closure-size --human-readable` on
aarch64-darwin.

size of:    eslint    closure  remark:
before:  438.3 MiB    2.7 GiB  (includes apple-sdk, compiler, etc.)
after:    10.6 MiB  202.1 MiB  (npmInstallFlags --omit=dev)
@onny
Copy link
Contributor

onny commented Mar 24, 2025

nixpkgs-review result

Generated using nixpkgs-review.

Command: nixpkgs-review pr 392126


x86_64-linux

✅ 1 package built:
  • eslint

@onny onny merged commit c97deca into NixOS:master Mar 24, 2025
26 of 27 checks passed
@onny
Copy link
Contributor

onny commented Mar 24, 2025

Thank you, very nice improvement 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants