Hitchhikers Guide to Npm
Hello hackers, this post is just a simple hello-world packing tutorial for packing nodejs with npm.
P.S : This does not talk about how npm works in depth, but gets one started with npm and assumption is you have dealt with some nodejs and npm installs before!
First up, if you have not installed node.js and npm (which is bundled with latest version) please do : ~~$ bash < <(curl h3manth.com/njs) ~~
The below are the steps for packing and publishing packages to npm registry :
# mkdir hello-node
# cd hello-node/
# npm adduser hemanth
Username: hemanth Password: Email: [email protected] npm http PUT https://registry.npmjs.org/-/user/org.couchdb.user:hemanth npm http 409 https://registry.npmjs.org/-/user/org.couchdb.user:hemanth npm http GET https://registry.npmjs.org/-/user/org.couchdb.user:hemanth npm http 200 https://registry.npmjs.org/-/user/org.couchdb.user:hemanth npm http PUT https://registry.npmjs.org/-/user/org.couchdb.user:hemanth/-rev/3
# npm init
Package name: (hello) Description: Hello World example for nodejs Package version: (0.0.0) Project homepage: (none) https://www.github.com/hemanth/hello-node Project git repository: (none) https://www.github.com/hemanth/hello-node.git Author name: Hemanth.HM Author email: (none) [email protected] Author url: (none) h3manth.com Main module/entry point: (none) hello.js Test command: (none) About to write to /home/hemanth/lab/hello-node/package.json
{ "author": "Hemanth.HM [[email protected]](mailto:[email protected]) (h3manth.com)", "name": "hello", "description": "Hello World example for nodejs", "version": "0.0.0", "homepage": "https://www.github.com/hemanth/hello-node", "repository": {
"url": "https://www.github.com/hemanth/hello-node.git"
}, "main": "hello.js", "dependencies": {}, "devDependencies": {}, "optionalDependencies": {}, "engines": {
"node": "*"
} }
Is this ok? (yes) yes
# ls
package.json
# cat > hello.js
var world = function() {return "Hello World"; }
exports.world = world
# node
> require('./hello.js') { world: [Function] }
>
> hello = require('./hello.js') { world: [Function] }
>
> hello.world [Function]
>
> hello.world() 'Hello World'
# npm publish
That’s it! npm unpublish to remove your package from the registry.
Summarizing the steps:
-
mkdir
-
cd
-
npm adduser
-
npm init
-
npm publish
A bit of digging into npm — node package manager:
npm is the package manager for the Node JavaScript platform. It puts
modules in place so that node can find them, and manages dependency conflicts intelligently.
npm-init -> Interactively create a package.json file. Make sure that you provide the Main module/entry point.
npm-adduser -> Adds a registry user account.
npm-publish -> Publish a package to the registry so that it can be installed by name.
npm-unpublih -> To remove the package from the registry.
Adding dependencies:
After npm init a package.json file will be created in your package directory, open it and look for the dependencies attribute and added the needed dependencies like below :
"request" : ">= 1.2.0",
"xkcd-imgs" : ">=1.0.0"
} ~~~
P.S : The most common mistake would be forgetting the `exports` statement ;)
I think this is enough for a starting up, so far was a Hitchhikers guide to npm, do let me know if something more can be added for one to just get started with npm!
About Hemanth HM
Hemanth HM is a Sr. Machine Learning Manager at PayPal, Google Developer Expert, TC39 delegate, FOSS advocate, and community leader with a passion for programming, AI, and open-source contributions.