Node.js modules best practice (draft)
Loading a module in Node.js is done with
var mymod = require("somepathtomymod");
The path of the module refers to :
- a file
- a directory that contains an index.js file
- a directory that contains a package.json file
- a package.json file
The path itself can be in Node.js search path (NODE_PATH, see Node.js documentation), or an absolute or relative filesystem path.
Because of the plurality of ways to load a module, it is inevitable there is a plurality of ways to (debian-)package and install a module.
This page tries to explain the best and most compatible way to install a module.
how to install a module
A module typically has already a source tree layout with directories like "lib", "bin", and a package.json file at its root.
Installing is as simple as:
lib usr/lib/nodejs/<module> bin usr/lib/nodejs/<module> package.json usr/lib/nodejs/<module>
This usually allows source to be kept unpatched (except for the nodejs rename):
relative require statements like require('..') work
lookups in package.json like require('./package').version
load module from NODE_PATH : require('mymodule'); still work