nodejs / nodejs/package-maintenance
Add buildDependencies to package.json
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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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