node package manager



Tool that searches your node.js module source code for all requires of external modules. Interactively adds dependencies to package.json based on their metadata.


npm install -g npm-auto-dep


Works only on linux/unix/(probably MacOS). Won't probably ever work on Windows out-of-the-box.[1]

Change directory to main directory of your module sources. Run


Or you can just

npm-auto-dep /home/kitten_killer/dev/src/node/MAD_protocols

Which will (try to) find all it's dependencies and add them to it's package.json .

Module must be initialized first. Best with npm init.

npm-auto-dep will ask you what to do with every single module it found, like this:

Add package when [2.5.1] from git repo:

If you enter h it will display a hint:



  • No - (default behaviour) dependency will not be changed. If it already is in dependencies, it will stay the same way
  • yes - dependecy will be added, but without version information. That is any version will satisfy.
  • version - custom version specification. You will be asked to enter semver version range.[2]
  • =version - exactly the module version installed will be requested.
  • =version - same or higher version then one installed will be requested

  • ~version - similar version will be requested. See also semver range spec.
  • repository - npm is told to clone this dependency from metadata specified repository. Currently only git is supported.
  • custom - enter whatever you like, as long as npm can understand it. (Currently npm-auto-dep does not validate that)
  • help - display hints and ask again what to do.

After you are done you will have to confirm or reject changes, like that:

Old dependencies:
{ when: '>=2.5.1',
  semver: '>=2.2.1',
  optimist: '>=0.6.0',
  colors: '>=0.6.2' }

New dependencies:
{ when: '>=2.5.0 <3.0.0',
  semver: '>=2.2.1',
  optimist: '>=0.6.0',
  colors: '>=0.6.2' }
Overwrite dependencies in file /home/kitten_killer/dev/src/npm-auto-dep/package.json ?

[1]: You can get grep and find from cygwin or something and add them to your PATH. It could work, unless some strange CLI argument parsing ensues. Anyway, if you are a developer able and wiling to do it, you should start using Linux by this point.

[2]: Like that:

Add package when [2.5.1] from git repo:
Already in dependencies in version: >=2.5.1
[N/y/v/=/>/r/h]: v
Enter version specification (see man 7 semver)
> >=2.5.0 <3.0.0