Skip to content


Subversion checkout URL

You can clone with
Download ZIP
A JavaScript utility library delivering consistency, modularity, performance, & extras.
JavaScript HTML
Fetching latest commit...
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

Lo-Dash v1.0.1

build status

A low-level utility library delivering consistency, customization, performance, and extra features.


Dive in

We’ve got API docs, benchmarks, and unit tests.

For a list of upcoming features, check out our roadmap.


For more information check out these articles, screencasts, and other videos over Lo-Dash:



Lo-Dash has been tested in at least Chrome 5~24, Firefox 1~18, IE 6-10, Opera 9.25-12, Safari 3-6, Node.js 0.4.8-0.8.20, Narwhal 0.3.2, PhantomJS 1.8.1, RingoJS 0.9, and Rhino 1.7RC5.

Custom builds

Custom builds make it easy to create lightweight versions of Lo-Dash containing only the methods you need. To top it off, we handle all method dependency and alias mapping for you.

  • Backbone builds, with only methods required by Backbone, may be created using the backbone modifier argument.
lodash backbone
  • CSP builds, supporting default Content Security Policy restrictions, may be created using the csp modifier argument. The csp modifier is an alias of the mobile modifier. Lo-Dash may be used in Chrome extensions by using either the csp, mobile, or underscore build and using precompiled templates, or loading Lo-Dash in a sandbox.
lodash csp
  • Legacy builds, tailored for older environments without ES5 support, may be created using the legacy modifier argument.
lodash legacy
  • Modern builds, tailored for newer environments with ES5 support, may be created using the modern modifier argument.
lodash modern
  • Mobile builds, without method compilation and most bug fixes for old browsers, may be created using the mobile modifier argument.
lodash mobile
  • Strict builds, with _.bindAll, _.defaults, and _.extend in strict mode, may be created using the strict modifier argument.
lodash strict
  • Underscore builds, tailored for projects already using Underscore, may be created using the underscore modifier argument.
lodash underscore

Custom builds may be created using the following commands:

  • Use the category argument to pass comma separated categories of methods to include in the build.
    Valid categories (case-insensitive) are “arrays”, “chaining”, “collections”, “functions”, “objects”, and “utilities”.
lodash category=collections,functions
lodash category="collections, functions"
  • Use the exports argument to pass comma separated names of ways to export the LoDash function.
    Valid exports are “amd”, “commonjs”, “global”, “node”, and “none”.
lodash exports=amd,commonjs,node
lodash exports="amd, commonjs, node"
  • Use the iife argument to specify code to replace the immediately-invoked function expression that wraps Lo-Dash.
lodash iife="!function(window,undefined){%output%}(this)"
  • Use the include argument to pass comma separated method/category names to include in the build.
lodash include=each,filter,map
lodash include="each, filter, map"
  • Use the minus argument to pass comma separated method/category names to remove from those included in the build.
lodash underscore minus=result,shuffle
lodash underscore minus="result, shuffle"
  • Use the plus argument to pass comma separated method/category names to add to those included in the build.
lodash backbone plus=random,template
lodash backbone plus="random, template"
  • Use the template argument to pass the file path pattern used to match template files to precompile.
lodash template="./*.jst"
  • Use the settings argument to pass the template settings used when precompiling templates.
lodash settings="{interpolate:/\{\{([\s\S]+?)\}\}/g}"
  • Use the moduleId argument to specify the AMD module ID of Lo-Dash, which defaults to “lodash”, used by precompiled templates.
lodash moduleId="underscore"

All arguments, except legacy with csp, mobile, modern, or underscore, may be combined.
Unless specified by -o or --output, all files created are saved to the current working directory.

The following options are also supported:

  • -c, --stdout ......... Write output to standard output
  • -d, --debug ........... Write only the non-minified development output
  • -h, --help ............. Display help information
  • -m, --minify ......... Write only the minified production output
  • -o, --output ......... Write output to a given path/filename
  • -p, --source-map .. Generate a source map for the minified output, using an optional source map URL
  • -s, --silent ......... Skip status updates normally logged to the console
  • -V, --version ....... Output current version of Lo-Dash

The lodash command-line utility is available when Lo-Dash is installed as a global package (i.e. npm install -g lodash).

Installation and usage

In browsers:

<script src="lodash.js"></script>

Using npm:

npm install lodash

npm install -g lodash
npm link lodash

To avoid potential issues, update npm before installing Lo-Dash:

npm install npm -g

In Node.js and RingoJS ≥ v0.8.0:

var _ = require('lodash');

// or as a drop-in replacement for Underscore
var _ = require('lodash/dist/lodash.underscore');

Note: If Lo-Dash is installed globally, run npm link lodash in your project’s root directory before requiring it.

In RingoJS ≤ v0.7.0:

var _ = require('lodash')._;

In Rhino:


In an AMD loader like RequireJS:

  'paths': {
    'underscore': 'path/to/lodash'
['underscore'], function(_) {

Release Notes


  • Add support for specifying source map URLs in -p/--source-map build options
  • Ensured the second argument passed to _.assign is not treated as a callback
  • Ensured -p/--source-map build options correctly set the sourceMappingURL
  • Made -p/--source-map build options set source map “sources” keys based on the builds performed
  • Made _.defer use setImmediate, in Node.js, when available
  • Made _.where search arrays for values regardless of their index position
  • Removed dead code from _.template

The full changelog is available here.


Lo-Dash is part of the BestieJS “Best in Class” module collection. This means we promote solid browser/environment support, ES5 precedents, unit testing, and plenty of documentation.



Something went wrong with that request. Please try again.