EPeak Daily

Tips on how to ignore recordsdata out of your npm package deal – freeCodeCamp.org

0 14


Picture by Maarten van den Heuvel on Unsplash

You’ll be able to determine what recordsdata folks get once they obtain your npm package deal in 3 ways:

  1. With the .gitignore file
  2. With the .npmignore file
  3. With the recordsdata property

We’ll take a look at every technique and talk about which strategies it’s best to (or shouldn’t) be utilizing.

Excluding recordsdata with gitignore

First, npm will test your repository for a .gitignore file. If there’s a .gitignore file, npm will ignore recordsdata in line with what’s listed within the .gitignore file.

That is the most typical method package deal authors stop folks from downloading additional recordsdata.

Let’s undergo a easy instance. Say you will have the next listing construction.

- project-name/ 
|- index.js
|- package deal.json
|- node_modules/

Let’s say you don’t need folks to obtain the node_modules folder. You additionally don’t wish to save the node_modules within the Git repository.

What you’ll do is create a .gitignore file.

# .gitignore 
node_modules

On this case, each Git and npm ignore the node_modules folder.

Blacklisting recordsdata with npmignore

A second method is to blacklist recordsdata with a .npmignore file. The .npmignore file works the identical method as a .gitignore file. If a file is listed within the .npmignore file, the file shall be excluded from the package deal.

Necessary observe: In case you have a .npmignore file, npm will use the .npmignore file. npm will ignore the .gitignore file altogether. (Many builders mistakenly consider npm will use each .npmignore and .gitignore recordsdata. Don’t make the identical mistake!)

You should use this technique if you wish to exclude recordsdata from the package deal however nonetheless preserve them within the Git repository.

Let’s stroll by one other instance. Let’s say you’ve written checks on your package deal and you place all of them in a checks folder. That is your listing construction:

- project-name/ 
|- index.js
|- package deal.json
|- node_modules/
|- checks/

You wish to exclude node_modules from each your Git repository and your package deal.

You wish to embody checks in your Git repository, however exclude it from the package deal.

In case you go for the npmignore file technique, you’ll be able to write these in your .gitignore and .npmignore recordsdata:

# .gitignore 
node_modules
# .npmignore 
node_modules checks

Whitelisting recordsdata with the recordsdata property

A 3rd technique is to whitelist recordsdata you wish to be included within the package deal.json file, beneath the recordsdata property.

Word: npm will prioritize this technique over different strategies talked about above. That is the simplest technique to restrict what recordsdata others obtain.

This method is fairly easy. What you want is to create a recordsdata property within the package deal.json file. Then, present an inventory of recordsdata you’d like to incorporate.

Right here’s an instance:

{ 
"recordsdata": [
"index.js"
]
}

Word: Some recordsdata, like package deal.json, are at all times included in a package deal. You don’t have to jot down these recordsdata within the recordsdata property.

Which technique to use?

All three strategies work. Choose the one you’re most snug with. For easy tasks, the .gitignore file technique ought to suffice.

In case your venture is extra superior, you would possibly wish to blacklist recordsdata with .npmignore or whitelist recordsdata with the recordsdata property. Choose one. There’s no want for each.

A fast tip

You should use npm pack to generate a package deal. This package deal consists of recordsdata different folks will get.

npm pack

Attempt it!

Thanks for studying. Did this text allow you to out? If it did, I hope you contemplate sharing it. You would possibly assist another person out. Thanks a lot!





Supply hyperlink

Leave A Reply

Hey there!

Sign in

Forgot password?
Close
of

Processing files…