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
以实现这种行为。我无法控制它的编写方式,