Copyright 2025

The Valley of Code

A Flavio Copes project

How to test an npm package locally
How to test an npm package locally

If you want to develop your own npm package, you first have to test it locally.

I had this need with a project that I wanted to modularize.

I had a package I called, as an example, flaviocopes-common-database.

I prepended flaviocopes- to give it a unique namespace.

Inside the package I added a package.json file with the module name in the name property and a few dependencies:

{
  "name": "flaviocopes-common-database",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "dependencies": {
    "pg": "^8.0.2",
    "sequelize": "^5.21.6"
  }
}

Then I ran

npm link

This created a symbolic link in the /usr/local/lib/node_modules/ folder, that contains the global npm packages in the system, the ones installed using npm -g, to be clear.

I had

/usr/local/lib/node_modules/flaviocopes-common-database

Pointing to the local file I had in

/Users/flavio/dev/code/flaviocopes-common-database

Now in another project I wanted to use this module, so I ran

npm link flaviocopes-common-database

and I was able to import it in the Node.js code using the usual require() syntax:

const database = require('flaviocopes-common-database')

Join my AI Workshop !

The Web Development BOOTCAMP cohort starts in February 2026