Lodash package size is 70KB (24KB if GZipped).
The following code will import entire lodash
library, even though you just use the clone function.
import _ from lodashconst object = { 'name': 'Desmond' }const shallow = _.clone(object)
Using the following code will import clone
only and significantly reduce the lodash bundle size. If you still want to maintain _
in your code, assigned imported function to _
object.
import clone from 'lodash/clone'const _ = { clone }const object = { 'name': 'Desmond' }const shallow = _.clone(object)
You can also customize and create your own global lodash _
object.
import keyBy from 'lodash/keyBy'import clone from 'lodash/clone'import map from 'lodash/map'global._ = { keyBy, clone, map }const shallow = _.clone(object)
If ESLint complaint of http://eslint.org/docs/rules/no-undef '_' is not defined
, edit .eslintrc.js
to add globals._ = true
.
module.exports = { ... globals: { '_': true },...}
Sadly the following syntax doesn't work to reduce lodash bundle size (no tree shake).
import { clone } from 'lodash'
You can explore lodash-es which should support the following syntax to reduce bundle size.
import { clone } from 'lodash-es'
You can also look into babel-plugin-lodash (Modular Lodash builds without the hassle).