How can we test my package before uploading it to the NPM registry?


Understanding npm link

If you are a Node.js developer, you are probably familiar with the npm package manager. In addition to providing access to thousands of third-party packages, npm also includes a powerful tool for developing your own packages and modules: `npm link`.

npm link is a command that allows developers to create a symbolic link between a globally-installed package and a local package. This can be incredibly useful when working on a large project with many dependencies, or when developing a new package and testing it within a larger application.

How does npm link work?

When you run `npm link` in a local package directory, it creates a symbolic link between the package and the global package installation directory on your computer. This means that instead of installing the package from the npm registry, Node.js will use the locally-developed package when it is required by another module.

Here is an example workflow for using npm link:

  1. Navigate to the directory of the local package you want to link.
  2. Run the command npm link.
  3. Navigate to the directory of the project that will use the local package.
  4. Run the command npm link package-name, where package-name is the name of the local package.
Hint: You can use the '--install-links' option during installation to simulate a production environment

After running these commands, the project will be linked to the local package, rather than the version installed from the npm registry.

Benefits of using npm link

The main benefit of using npm link is that it allows you to test changes made to a local package in real-time, without having to constantly publish and install the updated package. This can save you a lot of time during the development process, especially when working on larger projects with many dependencies.

Another benefit of npm link is that it allows you to easily share changes to a local package with other developers on your team. Instead of manually copying files between repositories or publishing a new version to the npm registry, you can simply run npm link and share the package with your team.

Potential drawbacks of using npm link

While npm link can be incredibly useful, there are a few potential drawbacks to keep in mind:
  • It can be easy to forget that a particular project is linked to a local package, which can lead to confusion or unexpected behavior.
  • If you are working on a team, it's important to make sure that everyone is using the same version of the linked package. This can be challenging if multiple people are making changes to the package simultaneously.
  • npm link can sometimes cause issues with versioning, especially if your project has many dependencies. It's important to test thoroughly and make sure that everything is working as expected before deploying any changes to production.


Overall, `npm link` is a powerful tool for Node.js developers that can save a lot of time and streamline the development process. By creating a symbolic link between a globally-installed package and a local package, developers can test changes in real-time and easily share

All Rights Reserved

Let's register a Viblo Account to get more interesting posts.