Skip to content
/ lodash Public
forked from lodash/lodash

A drop-in replacement for Underscore.js delivering performance, bug fixes, and additional features.

License

Notifications You must be signed in to change notification settings

npup/lodash

 
 

Repository files navigation

<<<<<<< HEAD

Lo-Dash v0.9.2

build status

A drop-in replacement* for Underscore.js, from the devs behind jsPerf.com, delivering performance, bug fixes, and additional features.

Lo-Dash’s performance is gained by avoiding slower native methods, instead opting for simplified non-ES5 compliant methods optimized for common usage, and by leveraging function compilation to reduce the number of overall function calls.

Download

Dive in

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

Create your own benchmarks at jsPerf, or search for existing ones.

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

Screencasts

For more information check out these screencasts over Lo-Dash:

Features

Support

Lo-Dash has been tested in at least Chrome 523, Firefox 116, IE 6-10, Opera 9.25-12, Safari 3-6, Node.js 0.4.8-0.8.14, Narwhal 0.3.2, RingoJS 0.8, 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.
lodash csp
  • Legacy builds, tailored for older browsers without ES5 support, may be created using the legacy modifier argument.
lodash legacy
  • Mobile builds, with IE < 9 bug fixes and method compilation removed, 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 or mobile, 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 debug output
  • -h, --help         Display help information
  • -m, --minify     Write only the minified output
  • -o, --output     Write output to a given path/filename
  • -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

=======

Lo-Dash v2.2.1

A utility library delivering consistency, customization, performance, & extras.

Download

CDN copies are available on cdnjs & jsDelivr.
For smaller file sizes, create custom builds with only the features needed.
Love modules? We’ve got you covered with lodash-amd, lodash-node, & npm packages per method.

Dive in

There’s plenty of documentation, unit tests, & benchmarks.
For a list of upcoming features, check out our roadmap.
The full changelog for this release is available on our wiki.

Features not in Underscore

Resources

  • Podcasts
  • Posts
  • Videos

For a list of other community created podcasts, posts, and videos please check out our wiki.

Support

Tested in Chrome 530, Firefox 224, IE 6-10, Opera 9.25~16, Safari 3-6, Node.js 0.6.8-0.10.20, Narwhal 0.3.2, PhantomJS 1.9.2, RingoJS 0.9, & Rhino 1.7RC5.

Installation & usage

upstream/master

In browsers:

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

<<<<<<< HEAD Using npm:

npm install lodash

npm install -g lodash
npm link lodash

======= Using npm:

npm i --save lodash
>>>>>>> upstream/master

{sudo} npm i -g lodash
npm ln lodash

<<<<<<< HEAD

var _ = require('lodash');

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 Node.js & Ringo:

var _ = require('lodash');
// or as Underscore
var _ = require('lodash/dist/lodash.underscore');

Notes:

  • Don’t assign values to special variable _ when in the REPL
  • If Lo-Dash is installed globally, run npm ln lodash in your project’s root directory before requiring it
  • Node.js 0.10.8-0.10.11 have bugs preventing minified builds

upstream/master

In Rhino:

load('lodash.js');

In an AMD loader:

require({
<<<<<<< HEAD
  'paths': {
    'underscore': 'path/to/lodash'
  }
=======
  'packages': [
    { 'name': 'lodash', 'location': 'path/to/lodash', 'main': 'lodash' }
  ]
>>>>>>> upstream/master
},
['underscore'], function(_) {
  console.log(_.VERSION);
});

<<<<<<< HEAD

Resolved Underscore.js issues

  • Allow iteration of objects with a length property [#799, test]
  • Fix cross-browser object iteration bugs [#60, #376, test]
  • Methods should work on pages with incorrectly shimmed native methods [#7, #742, test]
  • _.isEmpty should support jQuery/MooTools DOM query collections [#690, test]
  • _.isObject should avoid V8 bug #2291 [#605, test]
  • _.keys should work with arguments objects cross-browser [#396, test]
  • _.range should coerce arguments to numbers [#634, #683, test]

Release Notes

v0.9.2

  • Added fromIndex argument to _.contains
  • Added moduleId build option
  • Added Closure Compiler “simple” optimizations to the build process
  • Added support for strings in _.max and _.min
  • Added support for ES6 template delimiters to _.template
  • Ensured re-minification of Lo-Dash by third parties avoids Closure Compiler bugs
  • Optimized _.every, _.find, _.some, and _.uniq

The full changelog is available here.

BestieJS

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.

Author

twitter/jdalton
John-David Dalton

upstream/master

Contributors

<<<<<<< HEAD

Contributors

upstream/master

About

A drop-in replacement for Underscore.js delivering performance, bug fixes, and additional features.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 99.8%
  • Other 0.2%