@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

/@sigmacomputing/babel-plugin-lodash/

    Package Sidebar

    Install

    npm i @sigmacomputing/babel-plugin-lodash

    Weekly Downloads

    109,756

    Version

    3.3.5

    License

    MIT

    Unpacked Size

    26.1 kB

    Total Files

    13

    Last publish

    Collaborators

    • ayman-sigma
    • madisonchamberlain
    • rwoollen
    • jlgale
    • jfranty
    • sigmaci
    • ktruong
    • donhcd
    • maxseiden
    • chukamattah
    • sigma-nathan-healey
    • pat-haimbaugh
    • dmadelyn
    • yuchristina
    • kevinpham
    • pearce-sigma
    • jmhain
    • pballai
    • dinkarkhattar
    • mdevsigma
    • greg-at-sigma
    • turese
    • gsharoya
    • azule-lux
    • wtgjxj
    • nathansigma
    • alexisjohnson
    • hiranmaya
    • adityasigmacomputing
    • benjixd
    • dbronnik
    • ericbannatyne-sigma
    • anandnarayanan
    • mtoader
    • eranatsigma
    • dyoung_ncc
    • czhang_sigmacomputing
    • rudysigma
    • ezimanyi-sigma
    • sivadheeraj2
    • messerc
    • jhu_sigma
    • rjsigma
    • aakashpathak
    • yifeng-sigma
    • alexbiba
    • phillipwhite99
    • mansa_pabbaraju
    • terence.wils
    • yi-sigma
    • daisywang
    • cynthiashen
    • brett_b_at_sigma
    • wenxuan5
    • mwong-sigma
    • jaredspickard
    • moonero
    • hannahsigma
    • nicholaschandler
    • borissigma
    • diego-sigma
    • munteanuic
    • aarshinova
    • sharviln
    • sinanunan
    • yusufsigma
    • jonathanzhang53
    • aaron-sigma
    • rounaksalim95
    • vjeyaram
    • robinpille
    • guyatsigma
    • ncurrault
    • reitmr
    • tedbrakob
    • travisdickeysigma
    • maximus-sigma
    • ray.chen.sigma
    • jcheung-sigma
    • asadakram
    • haoxu-sigma
    • bohan_sigma
    • estellakarunia
    • samhv0
    • wessigma
    • vandit-sigma
    • peternandersson
    • purvilmehta
    • ryankwong
    • samirapatel
    • tifn
    • cgreybosh
    • liz425
    • aileensigma
    • matei_the_sigmanaut
    • rohan322
    • yashsvisharma
    • gary-sigma
    • matt-bierman-sigma
    • jadefleishhacker
    • fanfan-sigma
    • jscherererer
    • olcawthorne
    • smoir
    • linusmt
    • ashnarya
    • slequar
    • ashishcha9211
    • angelafan
    • sigma-integrations
    • angshuman-sigma
    • ardaakmann
    • sahilsalim99
    • montefern
    • ding-harrison
    • asingh888
    • tinocaersigma
    • curtiscastro
    • obashaw
    • christophermouri
    • abeljohnsigma
    • sigma-sherwin
    • voidd7
    • justineyuan
    • morriswan
    • acholmes
    • miguelsigma
    • mjones-sigma
    • foxhatleo
    • gsanford
    • john.yorke
    • hamishfrizzell
    • christinahuang
    • angel-sigma
    • dbronnik2
    • yinpengsig
    • sigmasamay
    • jwagner12345
    • virajramakrishnan
    • smitdagli
    • drewfb_sigma
    • ggezer
    • pedrosilvestre
    • danishsiddiquie
    • mcowger-at-sigma
    • colinmparker
    • sankruthkota0929
    • alyssatsuno
    • atulsigma
    • ankita-ashok-dalvi
    • shubhangi.srivastava
    • seanking-sigma
    • williamdolsen
    • marwanmattar
    • tao-sigma
    • shilpa-sigma
    • josephgoz
    • aicluo
    • jarvis-sigma
    • batra98
    • swvooda
    • agathasantoso
    • leoraksin
    • kunalgadgil
    • aiden-lee-sigma
    • mirandabillawala
    • eltong11
    • zyacub
    • mya-bridgeforth
    • rushalimoteria
    • dougancey
    • benharrissigma
    • haechanoh
    • jeffreychin
    • ashtonca
    • danielsamony1
    • joshb-sigma
    • lvinapatino
    • mhogrefe
    • huy-sigma
    • janeylin
    • sigmaseppy
    • anusha-rg
    • kanaaddeshpande
    • varyn
    • jw11142002
    • georgebonvaniesigma
    • reynaroyce
    • eeshakurode
    • lbruhmuller
    • halden-sigma
    • punnal
    • dhyeysigma
    • satsuki-sigma
    • yenh
    • jonathan-cook-sigma