npm警告:lodash@2.4.2已被弃用:lodash@<3.0.0不再维护。

20

当我使用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.

以下是我使用的版本和安装的全局包列表。
- Node: v5.1.0 - NPM: v3.5.0 - NPM全局包列表: 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,看看你正在使用哪些功能,如果可以只使用原生JS的方式。例如,merge 可以被 Object.assign 替换。 在我的情况下,我只使用了 merge,并删除了 lodash,不再出现npm错误。 - Janatbek Orozaly
2个回答

19

grunt-cli依赖于一个旧版的lodash。它不应影响grunt的功能; 它只是一个警告消息。

因此,您没有做错任何事情,这不是错误消息,只是一个警告,您安装grunt-cli的方式应该可以正常工作。


1
只是好奇,如何解决它?在grunt cli存储库中进行更改吗? - Kat Lim Ruiz
13
这个答案可能会让人心安,但实际上并没有解决问题——即一个不想要的警告。 - Neithan Max
@Sherlock OP的问题:“我做错了什么?”:没有。 “如何修复此错误?”:这不是一个错误,而是一个警告。 OP认为他们做错了一些导致此错误的事情,但实际上这只是由于OP没有任何过错而引起的警告。唯一的“修复”错误的解决方案是更新grunt-cli以不依赖旧版本的lodash。 - Tennyson H

-5

您可以尝试在控制台中运行此命令:

npm i -g lodash

如果这个修复了,请告诉我。


你好,我在安装Phonegap时遇到了相同的警告。我尝试了你的命令行,它显示lodash@4.3.0,但是当我重新安装Phonegap时,警告仍然存在。 - Pierre
1
@Pierre 这个命令会全局安装 lodash,所以你现在有两个不同版本的 lodash 安装了(一个是全局的,另一个是 Phonegap 的)。 - William
本地版本始终优先于全局版本。我认为唯一解决这个问题的方法是修复 crunt-cli 本身。 - Backslash36

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接