nodejs / nodejs/package-maintenance

Add buildDependencies to package.json

Open
#411 18 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
No language data
Stars
423
Forks
147
PR merge metrics
No merged PRs in 30d

Description

I think it's time to move build dependencies out of devDependencies to a separated group. It could be named "buildDependencies".

Motivation

Development dependencies contain tools like Eslint, Webpack development server, static server and many others which isn't required on a build stage. This affects the final installation size and increases the time updated code spends in CI/CD. Also it creates extra load on disk and network to download and store megabytes of redundant code.

Also it lets developers to create all-in-one packages which contain build and development tools simultaneously. What affects the size of this packages.

Pros
  • Faster CI/CD.
  • More compact installations.
  • Costs reduction.
Cons
  • Such solution requires separation of build and dev configuration files for tools like Gulp or Grunt to avoid dependencies import issues.
  • Requires Yarn, PNPM and NPM implement this feature all together.
  • Requires learning to use new option or automation to prevent dependency misplacement.

Contributor guide

Open the contributing guide

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

Start by reviewing the package.json dependency groups and the issue's discussion of Yarn, PNPM, and NPM support. Determine whether the proposed buildDependencies group has an agreed design and what coordinated package-manager changes would be required; done means a settled specification and implementation path rather than a single repository edit.

Written by the indexing model from the issue text.

Assessment

Tech stack
nodejs
Domain
build-system, tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.