Traditionaλ JS Dependency System


Traditionaλ JS Dependency System.

Mantri helps you manage your application's dependencies.


Attention 0.1.x The current 0.2.x version brings some rather breaking changes. Read the migration guide for more information.

MantriJS is no longer actively maintained. We'd suggest you use browserify for your frontend packaging needs.

  • A Robust and discreet Dependency Management System.
  • Synchronous. Everything is done before DOMContentLoaded event triggers.
  • A Grunt plugin.
  • A command line tool.
  • Cross-browser.
  • Dictate how you write your code. Vanilla JS, AMD, commonJS, knock yourselves out.
  • Need any runtime on your production file.
  • Need any dependency declarations in your production file.
  • Have any problem moving around JS files or folders.
  • Have any problem working with other dependency systems.
  • Polute your namespace. But you are free to if you want.

Mantri consists of the Web Runtime and the Command Line Tools. The Web Runtime's job is to load the files of your application during development. The Command Line Tools perform various tasks like building your application and calculating dependencies.

In order to get started, you'll want to install Mantri's command line interface (CLI) globally. You may need to use sudo (for OSX, *nix, BSD etc) or run your command shell as Administrator (for Windows) to do this.

npm install -g mantri-cli --silent

This will put the mantri command in your system path, allowing it to be run from any directory.

Note that installing mantri-cli does not install the mantri library! The job of the mantri CLI is simple: run the version of mantri which has been installed in your application. This allows multiple versions of mantri to be installed on the same machine simultaneously.

On your project, install the mantri library localy:

npm install mantri --silent --save-dev

Read the Getting Started Guide for a more detailed introduction.

  • Every time you edit or create a dependency declaration you need to run the mantriDeps task or the mantri deps command to re-calculate your dependencies.

  • Mantri is not meant to be used on your production environment. Whenever you want to deploy your app use the mantriBuild task or the mantri build command to bundle and minify your application into one file.

Each file should provide a unique namespace and can require any number of other namespaces:


Read more about the web API in this wiki page

Google Closure Tools have a couple dependencies, which are reasonable enough for any developer:

The classical ToDo MVC application has been refactored to use the Mantri Dependency System. You can find the repo here, or clone it:

git clone

... can be found in the wiki or view the same on a more cozy web version at

Start with the Getting Started Guide for a more detailed introduction.

  • v0.2.3, 26 Feb 2015
    • Upgraded all packages to latest.
  • v0.2.2, 11 Nov 2013
    • The web component will now warn if mantriConf.json could not be loaded.
  • v0.2.1, 5 Nov 2013
    • Added feature to use Closure Library in the codebase. Use the key closureLibrary and set the path.
  • v0.2.0, 4 Nov 2013 Breaking Changes Read the migration guide.
    • New Feature: Can now build multiple targets (Built-Modules).
    • Added support for SourceMaps, available through the sourceMapFile key.
    • Changed mantriConf.json keys:
      • baseUrl --> jsRoot
      • libs --> vendorLibs
      • build.input --> build.src
      • build.exclude --> build.excludeVendor
      • New key: buildModules
    • Changed format of outputWrapper, now uses Closure's pattern.
    • New experimental key _noCompile, to not perform any compilation steps.
    • Published web component on Bower repo.
  • v0.1.5, 13 May 2013
  • v0.1.1, 12 Apr 2013
    • Bug fixes on web component for IE6,7,8,9
  • v0.1.0, 03 Apr 2013
    • First stable version
    • Added CLI support
  • v0.0.1, Mid Feb 2013
    • Big Bang