Javascript 恢复mixin覆盖的原始lodash方法?

Javascript 恢复mixin覆盖的原始lodash方法?,javascript,requirejs,lodash,Javascript,Requirejs,Lodash,我们使用的是lodash contrib包,其中包括一个camelCase方法,该方法的行为不同于原始的.\camelCase方法 我有没有办法将指针恢复到原始方法 在requirejs配置中,我们有一个垫片: lodashContrib: ['lodash'] 一旦lodashContrib加载完毕,它就会向lodash添加混合剂。我们的代码示例如下: define([ 'lodashContrib' ], function() { // our code here. At

我们使用的是
lodash contrib
包,其中包括一个
camelCase
方法,该方法的行为不同于原始的
.\camelCase
方法

我有没有办法将指针恢复到原始方法

在requirejs配置中,我们有一个垫片:

lodashContrib: ['lodash']
一旦lodashContrib加载完毕,它就会向lodash添加混合剂。我们的代码示例如下:

define([
    'lodashContrib'
], function() {
    // our code here. At this point, _.camelCase is overridden by contrib
});

创建一个文件
lodashCustom.js
或您可以添加到requirejs配置中的某个文件,并将以下内容放在其中,然后无论您需要
lodashContrib
什么地方,您都可以改为需要此文件:

define(['lodash', 'lodashContrib'], function(_, _c) {
  _c.camelCase = _.camelCase;

  return _c;
});

假设您的shim实现不依赖于globals,这应该可以很好地工作。

这是node.js还是requirejs?requirejs,这样我可以在加载contrib之前拦截原始的lodash方法。您是否浏览了它?因为它说它只对node可用,除非您这样做。如果您只是单独加载
lodash contrib
库,那么您可以忽略包含您不喜欢的
camelCase
实现的库。我们不使用browserify(或webpack),因此我们确实无法控制构建,但不幸的是,我们确实需要的代码与我们不需要的camelCase完全在同一个文件中。然后,您是否可以提供相关代码来准确演示
lodash
lodash contrib
是如何加载到环境中的?lodash contrib不会作为参数传入,因此,
\uu
在加载时已被修改。这与您提供的示例代码是矛盾的
lodashContrib
是该模块的唯一参数。更重要的是,您现在所说的表明,您的垫片依赖于globals,这破坏了
requirejs
提供的模块化。像这样的问题是模块化非常重要的全部原因。在我的示例代码中,
define
回调没有参数,因为
lodash contrib
不能导出回调-它总是未定义的。Lodash确实如此,所以在我们转到Lodash contrib之前,我们确实有过这样的争论。我没有指示requirejs或任何类似的操作。我不确定您的
lodashContrib
模块是如何编写的,但它应该做的是接受
lodash
作为参数,并返回修改后的
\uuquot/code>。除非您想查看
lodashContrib
源代码并复制/粘贴用于定义
.camelCase
的所有相关作用域函数,否则我建议您重写
lodashContrib
以实现这种行为。我无法控制它的编写方式,