This short guide explains how to create an NPM package that can be called as a script from another project. For clarity: The package to execute will be called: Module The place where you use it: Application
Create a standard module ignore command line parsing Your entry point index.html should be callable using require()
If your module is split in multiple files make sure to use full paths to include them. For example:
/* Files at lib:
- a.js
- b.js
In a.js:
*/
const b = require('b'); // Won't work
const b = require('./b'); // Works
Create another entry point, a node file. Add in here: for example: cli.js
- First line must be: #!/usr/bin/env node
- Command line parsing
- Help
- Validation
- Require your index.js (or main entry point) and run it
We'll add a line so npm knows it has to copy the cli.js into .bin
"bin": {
"name_of_your_app": "./cli.js"
}
//or
"bin": "./cli.js"
Check a guide on publishing to npm, when you're ready:
npm publish
Now your package is readily available to be used anywhere.
Say you build a parser, a file processor or any other cool thing. Now you want a new node application to use it when building.
npm install your-package --save-dev
Open your package.json
"scripts": {
"name_to_call": "your_module_name param1 param2 param3"
},
npm run name_to_call
And that's it! Enjoy