amd-cli
amd-cli is a set of command-line utilities for JavaScript projects which employ
the Asynchronous Module Definition format. They can be used to diagnose
problems (amd check
, amd circulars
) or to gain a deeper understanding of a
project's structure (amd deps
, amd graph
).
Folks wanting programmatic access can use libamd, the base of this project.
Installation
$ [sudo] npm install -g amd-cli
Or install from source:
$ git clone https://github.com/zship/amd-cli.git
$ cd amd-cli
$ make
$ [sudo] make install
make
follows the same steps used for packaging amd-cli for npm, which is to
build documentation (markdown -> roff) and move it along with all other
distributables to a new "dist/" directory. make install
switches to "dist/"
and runs npm install -g
(which copies amd-cli to the npm prefix
directory
so that it's (probably) in your PATH).
Usage
amd <command>
Commands:
-
amd check
Run a linter-style check for broken dependencies -
amd circulars
Find and group circular dependencies -
amd deps
Print an AMD module's dependencies -
amd graph
Print a linearized dependency graph stemming from one or more modules -
amd help
Open the manpage for anamd
command. This is a fallback in case of $MANPATH, manpath.config, or npm manpage install issues. -
amd normalize
Print the canonical AMD module name for a given relative AMD module name or file path -
amd resolve
Print the canonical file path for a given AMD module name -
amd whatrequires
Print all files which depend on a given AMD module
Much more detail can be found in the manpages.
Documentation
man amd
Some versions of npm have a bug which causes manpages not to be linked properly. There are a few ways to handle this:
- Upgrade npm
[sudo] npm install -g npm
- Re-install amd-cli:
[sudo] npm install -g amd-cli
- Check that npm's prefix "share" directory is in your MANPATH
- Get the prefix under which npm installs global packages:
npm prefix -g
- Mentally add "/share/man" to the end of this path i.e.
echo $(npm prefix -g)/share/man
echo $MANPATH
- this should contain the path in #2 (npm prefix + "/share/man"). If not, move on to #4.- Add it:
MANPATH=$MANPATH:"$(npm prefix -g)/share/man"
- Try it out:
man amd
- Make it permanent by copy/pasting the command in #4 to your
~/.bashrc
, or just run:echo 'MANPATH=$MANPATH:"$(npm prefix -g)/share/man"' >> ~/.bashrc
- Get the prefix under which npm installs global packages:
- Manually add just amd-cli's manpages to your MANPATH
- The manpages are in a directory called "man" adjacent to the installed
amd
script. Check that the directory is there:cd "$(dirname $(readlink -f $(which amd) ) )/../man"
- Then add it:
MANPATH=$MANPATH:"$(dirname "$(readlink -f "$(which amd)" )" )/../man"
- Try it out:
man amd
- Make it permanent by copy/pasting the command in #4 to your
~/.bashrc
, or just run:echo 'MANPATH=$MANPATH:"$(dirname "$(readlink -f "$(which amd)" )" )/../man"' >> ~/.bashrc
- The manpages are in a directory called "man" adjacent to the installed
- Use the fallback
amd help
commandamd help
,amd help deps
, etc.
License
Released under the MIT License.