Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »


    Empath - Javascript Library Sniffer

    Currently in the Javascript community there is simply no concenses about modules. This is a problem. Empath scans a Javascript library and gives you information on how it expects to be consumed.


    npm install empath -g


    You've got a Javascript library sitting there in a directory called backbone. Maybe you downloaded it using a package manager or cloned it using git or extracted it as a tarball from github. How do you use it?

    $ empath backbone # give it the path of the directory
    Searching for main in backbone
    has backbone/bower.json? yes
    No main found in backbone/bower.json
    has backbone/component.json? no
    has backbone/package.json? yes
    Main found in backbone/package.json: backbone.js
    Supports AMD?
    Supports CommonJS?
      dependencies: underscore
      exports a object
    Globals variables exported

    Ah, okay. Empath tells you that the main file to include is: backbone.js at the root of the directory and that it does not support the AMD module format but does support the CommonJS format and depends on underscore. Or if you don't use a module system and just want to include it in a script tag, then it exports Backbone as a global variable.

    Background Information

    Module Format

    On the issue of module format, there are generally three camps:

    1. (AMD(Require.js))[]
    2. CommonJS(Node)
    3. We don't need a module system, just add globals


    Here is a list of the most popular package registries for Javascript

    • NPM - the registry for Node modules, currently the most popular JS registry, but the modules are generally not intended for use in the browser. However, Browserify has been a popular tool in re-targeting Node-style Javascript for browser use. Format: CommonJS.
    • Jam - A registry and package manager with a easy workflow. AMD-based.
    • Bower - a new registry by Twitter. Format agnostic but does nothing for workflow.
    • Component - the only front-end module registry using CommonJS. Requires a build step.
    • Volo - Another AMD-based registry with workflow and project scaffolding.

    For more information on module registries, take a look a this article by wilmoore.




    npm i empath

    Downloadslast 7 days







    last publish


    • avatar