npm-auto-dep
Tool that searches your node.js module source code for all require
s of external modules.
Interactively adds dependencies to package.json based on their metadata.
Installation
npm install -g npm-auto-dep
Usage
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
npm-auto-dep
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: https://github.com/cujojs/when
[N/y/v/=/>/~/r/c/h]:
If you enter h
it will display a hint:
[No/yes/version/=version/>=version/~version/repository/custom/help]
Where:
- 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 ?
[y/n]:
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.
Add package when [2.5.1] from git repo: https://github.com/cujojs/when
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