@sigmacomputing/babel-plugin-lodash

3.3.5 • Public • Published

@sigmacomputing/babel-plugin-lodash

A simple transform to cherry-pick Lodash modules so you don’t have to.

Combine with lodash-webpack-plugin for even smaller cherry-picked builds!

@sigmacomputing/babel-plugin-lodash is forked from babel-plugin-lodash which has since been abandoned.

Install

NPM

$ npm install --save lodash
$ npm install --save-dev babel-plugin-lodash @babel/cli @babel/preset-env

Yarn

$ yarn add lodash
$ yarn add @sigmacomputing/babel-plugin-lodash @babel/cli @babel/preset-env -D

Example

Transforms

import _ from 'lodash';
import { add } from 'lodash/fp';

const addOne = add(1);
_.map([1, 2, 3], addOne);

roughly to

import _add from 'lodash/fp/add';
import _map from 'lodash/map';

const addOne = _add(1);
_map([1, 2, 3], addOne);

Usage

.babelrc
{
  "plugins": ["@sigmacomputing/babel-plugin-lodash"],
  "presets": [["@babel/env", { "targets": { "node": 6 } }]]
}

Set plugin options using an array of [pluginName, optionsObject].

{
  "plugins": [
    [
      "@sigmacomputing/babel-plugin-lodash",
      { "id": "lodash-compat", "cwd": "some/path" }
    ]
  ],
  "presets": [["@babel/env", { "targets": { "node": 6 } }]]
}

The options.id can be an array of ids.

{
  "plugins": [
    ["@sigmacomputing/babel-plugin-lodash", { "id": ["async", "lodash-bound"] }]
  ],
  "presets": [["@babel/env", { "targets": { "node": 6 } }]]
}
Babel CLI
$ babel --plugins @sigmacomputing/babel-plugin-lodash --presets @babel/es2015 script.js
Babel API
require('babel-core').transform('code', {
  plugins: ['@sigmacomputing/babel-plugin-lodash'],
  presets: [['@babel/env', { targets: { node: 6 } }]],
});
webpack.config.js
'module': {
  'loaders': [{
    'loader': 'babel-loader',
    'test': /\.js$/,
    'exclude': /node_modules/,
    'query': {
      'plugins': ['@sigmacomputing/babel-plugin-lodash'],
      'presets': [['@babel/env', { 'targets': { 'node': 6 } }]]
    }
  }]
}

FAQ

Can this plugin produce ES2015 imports rather than CommonJS imports?

This plugin produces ES2015 imports by default. The @babel/plugin-transform-modules-commonjs plugin, which is included in the @babel/preset-es2015 preset, transforms ES2015 import statements to CommonJS. Omit it from your preset to preserve ES2015 style imports.

Limitations

  • You must use ES2015 imports to load Lodash
  • Babel < 6 & Node.js < 4 aren’t supported
  • Chain sequences aren’t supported. See this blog post for alternatives.
  • Modularized method packages aren’t supported

Package Sidebar

Install

npm i @sigmacomputing/babel-plugin-lodash

Weekly Downloads

65,709

Version

3.3.5

License

MIT

Unpacked Size

26.1 kB

Total Files

13

Last publish

Collaborators

  • sigma-integrations
  • angshuman-sigma
  • jscherererer
  • smoir
  • olcawthorne
  • matt-bierman-sigma
  • rohan322
  • asadakram
  • samhv0
  • noxryan
  • ardenma
  • mandatran
  • travisdickeysigma
  • jcheung-sigma
  • purvilmehta
  • angelafan
  • cgreybosh
  • gary-sigma
  • fanfan-sigma
  • jadefleishhacker
  • aileensigma
  • slequar
  • maximus-sigma
  • tedbrakob
  • albert-sigma
  • amysigma
  • christophermouri
  • tinocaersigma
  • obashaw
  • dmadelyn
  • shikha_a
  • daisywang
  • sivadheeraj2
  • weiranw
  • nathansigma
  • gsharoya
  • sigliu-chris
  • protichi
  • hiranmaya
  • tristansigma
  • chukamattah
  • tunguyen106
  • rgdutta
  • robarnold
  • wolf-at-sigma
  • mjones-sigma
  • miguelsigma
  • s-nawal
  • williamblaskosigma
  • kevin-ye225
  • liz425
  • rohan-sigma
  • tifn
  • samirapatel
  • ryankwong
  • grantshih
  • rajsigma
  • zyzhu525
  • rounaksalim95
  • wenxuan5
  • ayman-sigma
  • wessigma
  • stephon
  • charlesnelson-sigma
  • haoxu-sigma
  • lunagantonio_sigma
  • aradhakrishnan
  • reitmr
  • vjeyaram
  • aaron-sigma
  • yusufsigma
  • mwong-sigma
  • diego-sigma
  • borissigma
  • garysigma
  • alexbiba
  • jhu_sigma
  • mdevsigma
  • jacobkalinowski
  • brett_b_at_sigma
  • hannahsigma
  • jaredspickard
  • nicholaschandler
  • muralisigma
  • moonero
  • vikas-rp
  • cynthiashen
  • sinanunan
  • mansa_pabbaraju
  • ezimanyi-sigma
  • yuchristina
  • sharviln
  • aarshinova
  • munteanuic
  • antonlunev
  • thorakks
  • jareddoor
  • jamesflorencio
  • yi-sigma
  • pearce-sigma
  • ankita.shankar
  • junpeng-sigma
  • terence.wils
  • phillipwhite99
  • kevinpham
  • sigma-deepak
  • sam_sigma
  • snehagathani
  • madisonchamberlain
  • rwoollen
  • jlgale
  • jfranty
  • sigmaci
  • ktruong
  • donhcd
  • maxseiden
  • sierralsigma
  • jmhain
  • greg-at-sigma
  • turese
  • wtgjxj
  • alexisjohnson
  • adityasigmacomputing
  • benjixd
  • duci9y
  • dbronnik
  • ericbannatyne-sigma
  • anandnarayanan
  • mtoader
  • eranatsigma
  • dyoung_ncc
  • czhang_sigmacomputing
  • rudysigma
  • jacksigmacomputing
  • messerc
  • rjsigma
  • iangardner
  • yifeng-sigma
  • xyin96