lodash简介
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lodash简介相关的知识,希望对你有一定的参考价值。
参考技术A <<模块lodash的作用>>Lodash是一个内部封装了诸多对字符串、数组、对象等常见的数据类型的处理函数的一套工具库
Lodash提供的辅助函数主要分为以下几类
---Array,适用于数组类型,比如填充数据、查找元素、数组分片等操作
---Collection,适用于数组和对象类型,部分适用于字符串,比如分组、查找、过滤等操作
---Function,适用于函数类型,比如节流、延迟、缓存、设置钩子等操作
---Lang,普遍适用于各种类型,常用于执行类型判断和类型转换
---Math,适用于数值类型,常用于执行数学计算
---Number,适用于生成随机数,比较数值与数值区间的关系
---Object,适用于对象类型,常用于对象的创建、扩展、类型转换、检索、集合等操作
---Seq,常用于创建链式调用,提高执行性能
---String,适用于字符串类型
lodash主要使用了延迟计算,使得其性能大大提升,延迟计算意味着在我们的链式方法在显示或者隐藏式的value()调用之前式不会执行的。由于这种执行的延后,因此lodash可以进行shortcut fusion这样的优化,通过合并链式iteratee大大降低迭代次数。从而大大提升性能
//什么是shortcut fusion??
例如
这里只是一串方法链,如果没有显式的调用value方法,使其立即执行的话,将会得到LodashWrapper的延迟表达式,如下
因为延迟表达式的存在,我们可以多次增加方法链,但是并不会执行,所以不会存在性能上的问题,当我们最后需要使用的时候,使用value显示立即执行即可。
npm WARN 已弃用 lodash@2.4.2: lodash@<3.0.0 不再维护
【中文标题】npm WARN 已弃用 lodash@2.4.2: lodash@<3.0.0 不再维护【英文标题】:npm WARN deprecated lodash@2.4.2: lodash@<3.0.0 is no longer maintained 【发布时间】:2016-03-02 15:32:52 【问题描述】:使用 npm 全局安装 grunt-cli 时出现错误。和lodash有关:
npm WARN deprecated lodash@2.4.2:
lodash@<3.0.0 is no longer maintained. Upgrade to lodash@^3.0.0.
这是我正在使用的版本,以及已安装的全局包列表。
节点: v5.1.0
npm: v3.5.0
npm list -g: http://pastebin.com/NuJU3bY0
我尝试全局安装最新版本的 lodash (v3.10.1),但在卸载 grunt-cli 全局包,然后重新安装全局包后,我仍然再次遇到错误。以下是安装日志:
sudo npm install lodash -g
/usr/local/lib
└── lodash@3.10.1
sudo npm install grunt-cli -g
npm WARN deprecated lodash@2.4.2:
lodash@<3.0.0 is no longer maintained. Upgrade to lodash@^3.0.0.
/usr/local/bin/grunt -> /usr/local/lib/node_modules/grunt-cli/bin/grunt
/usr/local/lib
└─┬ grunt-cli@0.1.13
├─┬ findup-sync@0.1.3
│ ├─┬ glob@3.2.11
│ │ ├── inherits@2.0.1
│ │ └─┬ minimatch@0.3.0
│ │ ├── lru-cache@2.7.3
│ │ └── sigmund@1.0.1
│ └── lodash@2.4.2
├─┬ nopt@1.0.10
│ └── abbrev@1.0.7
└── resolve@0.3.1
npm WARN In grunt-cli@0.1.13 replacing bundled version of nopt with nopt@1.0.10
npm WARN In grunt-cli@0.1.13 replacing bundled version of findup-sync with findup-sync@0.1.3
npm WARN In grunt-cli@0.1.13 replacing bundled version of resolve with resolve@0.3.1
npm WARN In grunt-cli@0.1.13 replacing bundled version of lodash with lodash@2.4.2
npm WARN In grunt-cli@0.1.13 replacing bundled version of glob with glob@3.2.11
npm WARN In grunt-cli@0.1.13 replacing bundled version of inherits with inherits@2.0.1
npm WARN In grunt-cli@0.1.13 replacing bundled version of minimatch with minimatch@0.3.0
npm WARN In grunt-cli@0.1.13 replacing bundled version of sigmund with sigmund@1.0.1
npm WARN In grunt-cli@0.1.13 replacing bundled version of lru-cache with lru-cache@2.7.3
npm WARN In grunt-cli@0.1.13 replacing bundled version of abbrev with abbrev@1.0.7
谁能告诉我我做错了什么,或者如何修复这个错误并获得全新安装的 grunt-cli?
【问题讨论】:
说到lodash
,看看你正在使用什么功能,如果你可以使用vanilla JS方式。例如merge
可以替换为Object.assign
,在我的情况下,我只使用merge
,并删除了lodash,不再出现npm 错误。
【参考方案1】:
packagegrunt-cli
依赖于旧版本的 lodash。它不应该影响 grunt 的功能;这只是一个警告信息。
所以,您没有做错任何事情,这不是错误消息,只是警告,并且您安装 grunt-cli 的方式应该可以正常工作。
【讨论】:
只是好奇,怎么解决?在 grunt cli repo 中进行更改? 这个答案可能会让您高枕无忧,但它确实不能解决不需要警告的问题 @Sherlock OP 的问题:“我做错了什么?”:什么都没有。 “如何解决这个错误?”:这不是错误,而是警告。 OP 认为他们做错了什么会导致此错误,但这只是一个警告,因为 OP 没有过错。 “修复”错误的唯一解决方案是更新grunt-cli
以不依赖旧的 lodash 安装。【参考方案2】:
您可以尝试在控制台中运行此命令:
npm i -g lodash
如果这能解决问题,请告诉我。
【讨论】:
您好,我在安装 Phonegap 时遇到了同样的警告。我试过你的命令行,它显示 lodash@4.3.0 但是当我重新安装 Phonegap 时警告仍然存在。 @Pierre 此命令全局安装 lodash,因此您现在安装了两个不同版本的 lodash(全局版本和 Phonegap 版本)。 本地版本总是优先于全局版本。我认为没有其他方法可以通过修复crunt-cli
本身来解决此问题。以上是关于lodash简介的主要内容,如果未能解决你的问题,请参考以下文章
lodash入门,使用 。throttle和debounce
JavaScript工具库——Lodash.js介绍安装及使用
Lodash - '_' 指的是 UMD 全局并且 lodash.js 不是模块错误