Skip to content

proposal: provide a standardised .npmignore file for use across plugin and util repos #42

Closed
@Fdawgs

Description

@Fdawgs

Prerequisites

  • I have written a descriptive issue title
  • I have searched existing issues to ensure the issue has not already been raised

Issue

Summary

Reduce size of published packages by using .npmignore, or files in package.json.

Motivation

With the Greener NHS programme, National Health Service organisations and bodies across the UK are looking at ways to become carbon neutral, reduce energy consumption, combat climate change, and at the same time save money that can then be spent instead on improving patient care.
The recent heatwaves and wildfires across Europe have exemplified the need to prioritize this.

I've been looking at this from the tech perspective within my hospital, and have already called out a supplier for their unnecessarily heavy web app (loading various versions of jquery and lodash and then not using them). It would be hypocritical for me to not look at the tools and frameworks we use internally, such as Fastify.

Whilst previous discussions have looked at this issue through the lenses of improving developer experience, environmental impacts have not been considered.

Rationale and Alternatives

Ignoring unused files could speed up installations, lower bandwidth usage, improve reliability on spotty connections, and leave more room on the hard drive. Registries and mirrors would also benefit; reduced resources likely means lower energy consumption and lower costs.

Users could use yarn's autoclean CLI to remove the unused files, but the files have already been downloaded and bandwidth wasted at this point.

Implementation

Prior discussions have stated the want to include test files in published packages.
With this in mind, we could still ignore files and directories related to:

  • CI/CD
  • Examples
  • Benchmarks

Example

@fastify/static

  • packed size: 210.5kB
  • packed size with .github and example/** removed: 162.9kB (~23% reduction)
  • packed size with .github, example/**, and test/** removed: 11.8kB (~94% reduction)

@fastify/static is downloaded around 400,000 times a month at present (will grow as more migrate from fastify-static) meaning it uses ~84.2GB/month.
Removing just the CI/CD and examples would drop that to ~65.16GB/month; removing the test files as well would drop that to ~4.72GB/month.

Previous discussions

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions