Introduction to npm
npm(node package manager) is regarded as the standard package manager used in javascript. The npm registry crossed a million packages last year(Jun ’19). It is the largest single-language code repository. That being said, it is a little obvious now that npm is a big deal .
npm is automatically installed when you install Node.js
Since its a package manager, it is used to manage downloads and handle dependencies of your project.
It is a common saying that
There is a package for everything in npm
Well, almost everything. There’s always more.
Let’s have a walkthrough of npm from introduction to how to publish your own package .
Introduction
npm
is written entirely in JavaScript(JS) and was developed by
Isaac Schlueter
. It was initially used to download and manage dependencies, but it has since also used frequently in frontend JavaScript.
npm
can manage packages that are local dependencies of a particular project, as well as globally-installed JavaScript tools. In addition to plain downloads, npm also manages versioning, so you can install any version, higher or lower according to the needs of your project. If no version is mentioned, the latest version of the package is installed.
How to use
→ If
package.json
file exists in your project directory, all you need to do is use this command
npm install
This command will initialize the
node_modules
folder and install all packages that the project needs.
And if you need to update the installed packages, hit
npm update
All packages will be updated to their latest versions.
→ If you just need to install a single package, you can use this command
npm install <package_name>
Similarly, if you just need to update a single package, all you need to do is
npm update <package_name>
Note: By default, packages are installed in the local scope. If you need to install the package at global scope, you need to mention the flag
-g
npm install <package_name> -g
This will install the package at the global scope in the system directory.
How to publish your own package
Several developers feel the need to use some functionality of one project in another. Normally, the developer copies code from one project and pastes in another but if it is common functionality that may be used in several projects its a better and good practice to publish your reusable codes as npm packages.
Also, why miss a good opportunity to become an author, right?
Okay, so let’s start!
1. npm init
When you are in your desired directory, open the CLI, and use this command:
npm init
A text utility appears and you are asked to enter a few details to create a basic
package.json
file such as package name, version, description, author, etc.
Enter the details of the package as you please. The defaults will be mentioned in parentheses like this →
package name: (test-pkg)
version: (1.0.0)
description: This is a test package
.
.
.
Just hit Enter if you want the default options.
A basic
package.json
will be created looking something like this →
{
"name": "test-pkg",
"version": "1.0.0",
"description": "This is a test package",
"main": "index.js",
"author": "after-academy",
"license": "ISC"
}
Obviously, you can change the
package.json
file later if you want.
2. Source
Now, you need to prepare the source code. If the code is not too big, it is typically just write in the main file(
index.js
here). Else, conventionally a
src
directory is used where your abstract code is stored in several files.
★ Remember to export the code using
module.exports
3. Test
You now need to thoroughly test your code before publishing. This is how you, as a developer, confirm that your package can actually be used.
4. Publish
If this is your first time, you probably won’t be logged in with your npm account. If you don’t have an account, go to npmjs.com and create your account.
Now, in your terminal, log in with your npm account.
npm login
And now to publish your package,
npm publish
And you’re done!
You can now check your published project at www.npmjs.com/<username>/<pkg-name>.
The details regarding the package such as version, author name, description, etc. are extracted from the
package.json
file you created earlier.
Now you’ve got a basic idea about what npm is and how you can publish your own package to the npm registry.
Please give your feedback in the comments below.