我会尝试总结几个步骤,然后问一个问题
underscore.js
开发 3rd-party javascript 组件时安装失败(如此处所述:Underscore.js 和 noconflict)。我的代码包含以下行以避免不同版本的underscore.js发生冲突:window.$MyUS = _.noConflict();
在查看
underscore.js
代码时发现,如果定义了exports
or ,则变量将成为or的成员。它只是发生了(在浏览器中,当然不是在Node.js中)。module.exports
_
exports
module.exports
我试图将
exports
对象保存在一边,并在加载之前将其删除,underscore.js
并在调用noConflict()
. 但是,调用 时delete exports
,Ive gotfalse
,表示exports
无法删除。我在
exports
object:compile()
和compileToString()
. 通过查看他们的实现,我发现LF
了可能引用livefyre
Javascript API ( http://www.livefyre.com/docs/javascript-sdk-reference )的参考资料
解决冲突的更好方法是什么?我看到以下选项:
修改underscore.js代码,使其不会尝试将自身安装到
exports
对象中。让underscore.js来修改
exports
对象,希望任何网站都不会出错。在这种情况下,我需要像这样重写该window.$MyUS = _.noConflict();
行:window.$MyUS = .noConflict || 出口。.noConflict() || ... ; // 为了清楚起见省略了完整性检查,显然生产代码必须更健壮
如果您需要更多信息 - 请询问。