Steps to follow to create and use a local npm module:
Create a directory:
mkdir npm-test
Create a package.json file in the directory:
cd npm-test
npm init
follow the steps at the prompt, keep the defalts, maybe add a description and author
If index.js is the entry point listed in package.json (by default, e.g "main":"index.js", create the index.js file:
touch index.js
Edit index.js with your favorite text editor. I am using vim. :
vim index.js
Add the following content within vim as a test :
exports.printMsg = function() {
console.log("This is a message from the demo package.");
}
Create a package with the npm file:
npm pack
unzip the tarball:
tar xzvf test-npm-1.0.0.tgz
In the unzipped package, link to the global package namespace:
cd package
npm link
Create a file folder to call the new npm package:
mkdir test-folder
cd test-folder
Make the npm package available:
npm link test-npm
Use the npm package in a test file:
touch testfile.ts
vim testfile.ts
add to vim: " import * as testy from 'test-npm'
console.log(testy.printMsg) "
convert to js: tsc testfile.ts
run with node: node testfile.js
How to reverse the link:
Remove package in the test-folder:
npm unlink --no-save npm-test
Remove global link to the npm package:
cd npm-test/package/
npm unlink
Sources:
https://docs.npmjs.com/cli/v6/commands/npm-pack
https://medium.com/@debshish.pal/publish-a-npm-package-locally-for-testing-9a00015eb9fd
https://www.cyberciti.biz/faq/unpack-tgz-linux-command-line/
https://medium.com/@alexishevia/the-magic-behind-npm-link-d94dcb3a81af