@sigmacomputing/babel-plugin-lodash
v3.3.5 babel-plugin cherry-pick lodash modules
@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
npm i @sigmacomputing/babel-plugin-lodash
Metadata
- MIT
- Whatever
- Graeme Yeates
- released 6/22/2023
Downloads
Maintainers
arjun0502, matei_the_sigmanaut, dmadelyn, shikha_a, daisywang, sivadheeraj2, weiranw, nathansigma, gsharoya, sigliu-chris, protichi, hiranmaya, angelafan, montefern, ardaakmann, tristansigma, justineyuan, chukamattah, tunguyen106, purvilmehta, rgdutta, robarnold, wolf-at-sigma, mjones-sigma, miguelsigma, s-nawal, williamblaskosigma, glensigma, kevin-ye225, sureshmula, liz425, rohan-sigma, tifn, samirapatel, ryankwong, grantshih, rajsigma, zyzhu525, rounaksalim95, wenxuan5, ayman-sigma, wessigma, stephon, raharsha, charlesnelson-sigma, haoxu-sigma, lunagantonio_sigma, aradhakrishnan, reitmr, vjeyaram, dmitriykharchenko, aaron-sigma, yusufsigma, mwong-sigma, diego-sigma, kristijan-sigma, borissigma, garysigma, alexbiba, jhu_sigma, mdevsigma, feinstatsigma, kanghua-sigma, jacobkalinowski, brett_b_at_sigma, hannahsigma, jaredspickard, nicholaschandler, muralisigma, moonero, vikas-rp, cynthiashen, sinanunan, mansa_pabbaraju, pizzaoracle, ezimanyi-sigma, yuchristina, vladislavboboshko, sharviln, aarshinova, munteanuic, slequar, rebekahkim, cgreybosh, antonlunev, thorakks, jareddoor, jamesflorencio, yi-sigma, olegatsigma, lilchang, pearce-sigma, ankita.shankar, junpeng-sigma, rohinipatilsigma, terence.wils, phillipwhite99, kevinpham, sigma-deepak, sam_sigma, snehagathani, madisonchamberlain, rwoollen, jlgale, jfranty, sigmaci, ktruong, donhcd, maxseiden, sierralsigma, jmhain, greg-at-sigma, turese, anton-bulyenov, wtgjxj, alexisjohnson, adityasigmacomputing, benjixd, jack-bens, duci9y, dbronnik, ericbannatyne-sigma, neil-sigma, anandnarayanan, sigmacomputingluke, mtoader, eranatsigma, dyoung_ncc, czhang_sigmacomputing, rudysigma, jacksigmacomputing, messerc, rjsigma, sigmoid-mogab, iangardner, yifeng-sigma, xyin96,