【问题标题】:Using lodash with underscore使用带下划线的 lodash
【发布时间】:2014-03-06 20:24:15
【问题描述】:

我目前正在参与一个使用下划线 1.3.3 和主干 0.9.2 的项目,我想合并 lodash 以利用 cloneDeep() 方法。我们相对接近主要版本,所以我想尽量减少对现有代码库的影响。是否可以合并 lodash 以免对我们现有的下划线调用产生任何影响?

【问题讨论】:

  • 停止它。不要那样做;如果它不存在,只需添加cloneDeep 下划线。来源应该足够简单。
  • 此外,不要只为一种方法包含整个库!
  • 另外,如果您的项目已经在使用 jQuery,您可以通过将 true 作为第一个参数传递给 $.extend() 来进行深度克隆

标签: javascript underscore.js lodash


【解决方案1】:

不要尝试混合使用 loDash 和下划线。

我现在只是复制并粘贴 cloneDeep 源代码,然后在主要版本发布后将您的整个项目移植到 lodash。

【讨论】:

    【解决方案2】:

    首先,lodash 提供了一个“下划线”构建,旨在作为替代品。考虑用它替换下划线。

    如果您不想走那条路,可以使用_.noConflict 将lodash 分配给不同的变量,并保留对_ 的访问权限以用作下划线。

    【讨论】:

    • 我想为这个插入式构建投票,但我就是不支持将两者混合使用。
    • 我也不推荐它(这就是为什么我把它列在第二位),但有时你的环境的现实可能不容易替换一个库(巨大的回归测试工作)而且它不是尝试维护来自 3rd 方库的复制/粘贴代码的理想选择。我猜,选择你的毒药。