いくつかの手順を要約して、後で質問します
underscore.js
サードパーティのJavaScriptコンポーネントの開発時にインストールに失敗しました(ここで説明されているように:Underscore.jsとnoconflict)。私のコードには、underscore.jsの異なるバージョンの衝突を避けるために次の行が含まれていました:window。$MyUS= _.noConflict();
underscore.js
コードを調べたところ、exports
またはmodule.exports
が定義されている場合、変数はまた_
はのメンバーになることがわかりました。それはちょうど起こった(もちろん、Node.jsではなくブラウザで)。exports
module.exports
オブジェクトを脇に保存して、
exports
ロードする前に削除しunderscore.js
、を呼び出した直後に復元しようとしましたnoConflict()
。ただし、を呼び出すとdelete exports
、が表示されます。これは、削除できないことfalse
を意味します。exports
exports
オブジェクト内に2つのメンバー関数が見つかりました:compile()
とcompileToString()
。それらの実装を調べることで、おそらくJavascript APILF
を参照している参照を見つけました( http://www.livefyre.com/docs/javascript-sdk-reference)livefyre
競合を解決するためのより良い方法はどれですか?次のオプションが表示されます。
underscore.jsコードを変更して、
exports
オブジェクトに自分自身をインストールしようとしないようにします。underscore.jsでオブジェクトを変更し、どのサイトでも問題が発生しないことを期待します。その場合、次のように行
exports
を書き直す必要があります。window.$MyUS = _.noConflict();
window。$MyUS= .noConflict || 輸出。.noConflict()|| ...; //明確にするために健全性チェックは省略されています、明らかに本番コードはより堅牢でなければなりません
さらに情報が必要な場合は、お問い合わせください。