Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Expose a global command to run a script from node package

I am building an npm package and I want it to run with its own command.

Let's say my package's name is hello-world and it has a script named start in the package.json that runs:

node index.js

What I would like is from the command line to be able to write some custom command that will run this script.

For instance, writing hello-world in the cmd will do npm run start.

A good example is the nodemon package.

like image 679
Amit Wagner Avatar asked Sep 01 '25 03:09

Amit Wagner


1 Answers

You will have to add bin field into your package.json to expose a global command which can be linked to any executable file(like js file).

Sample package.json

{
  "name": "hello-world",
  "version": "1.0.0",
  "description": "hello-world cli client",
  "bin": "index.js"
}

then your npm module should globally installed in your system as follows

npm pack (Optional.required only for local development)


npm install -g hello-world-1.0.0.tgz

Now you should able to run your script by just running the command as hello-world

Note: The executable script i.e index.js should starts with a line #!/usr/bin/env node

like image 106
prabhakaran Avatar answered Sep 02 '25 17:09

prabhakaran