2015-03-08 23 views
12

流星使用非常年代的1.5.2版本的Underscore。今年9月两岁,错过了当前1.8.2库中的许多优秀内容。我可以更新Meteor Underscore软件包吗?

包是否可以更新?

+0

如果您正在寻找特定的附加下划线功能ality有很多关于atmospherejs.com的信息:请参阅https://atmospherejs.com/?q=underscore – 2015-03-08 19:10:16

+0

我只是希望能够使用像findIndex这样的当前下划线助手(以及自从Meteors旧版本以来添加的其他一些助手)。 – Pablo 2015-03-08 20:56:53

+0

例如'mapObject()'方法在我的流星体中不可用1.0 – Sebastian 2015-08-12 20:41:48

回答

12

您可以更新应用程序中使用的版本,但不是流星本身使用的版本。看到这个GitHub issue

最简单的解决方案是用Lodash替换Underscore,它具有比最新的Underscore更多的功能。每this thread,正是这种简单:

meteor add alethes:lodash 

而在你的启动代码:

// Use lodash instead of underscore 
_ = lodash; 

如果你喜欢最新的下划线,而不是Lodash,它看起来像此刻你需要下载文件从underscorejs.org并将其保存到您的libclient/compatibility文件夹中。它应该在Meteor的库本身加载后执行,并劫持_变量。您也可以使用_.noConflict()对它进行初始化,在这种情况下,您可以让_保留在Meteor的版本中,您可以将新的Underscore分配给其他内容,例如, underscore = _.noConflict();

我应该提到,这两种解决方案中的任何一种都会将两种库(Meteor的旧版Underscore以及您正在使用的新库)下载到客户端。直到流星本身升级(参见上面的GitHub问题),这是不可避免的。

+0

谢谢!我希望避免重复的库。如果我不得不承担另一个图书馆额外的“重量”,我一定会使用lodash。 – Pablo 2015-03-08 20:50:41

2

使用lodash与流星ES2015我的解决办法:

meteor npm i lodash --save

和进口lodash /imports/startup/client/index.js

import lodash from 'lodash'; window._ = lodash;

问候,李启

+1

npm包是一个坚实的途径,通常更新比流星包快得多,包装npm pkg – DefionsCode 2017-09-11 18:09:05

相关问题