亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

匿名的define()模塊不匹配

匿名的define()模塊不匹配

肥皂起泡泡 2019-07-24 20:11:44
匿名的define()模塊不匹配當我第一次瀏覽我的webapp時(通常在具有禁用緩存的瀏覽器中),我收到此錯誤。錯誤:匿名的define()模塊不匹配:function(require){HTML:<html>    .    .    .   <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>    <script> var require = { urlArgs: "v=0.4.1.32" }; </script>    <script data-main="assets/js/main" src="assets/js/libs/require.js"></script>    <script src="assets/js/ace/ace.js?v=0.4.1.32"></script>    </body></html>JS:$(function () {     define(function (require) {         // do something     });});任何人都知道這個錯誤意味著什么以及它為什么會發生?源文件,在github問題頁面中對它進行簡短討論
查看完整描述

3 回答

?
慕妹3146593

TA貢獻1820條經驗 獲得超9個贊

我有這個錯誤,因為我包含了requirejs文件以及直接包含在腳本標記中的其他庫。那些庫(如lodash)使用了與require的define沖突的define函數。requirejs文件是異步加載的,因此我懷疑require的定義是在其他庫定義之后定義的,因此存在沖突。

要消除錯誤,請使用requirejs包含所有其他js文件。


查看完整回答
反對 回復 2019-07-24
?
縹緲止盈

TA貢獻2041條經驗 獲得超4個贊

根據文檔

如果在HTML中手動編寫腳本標記以使用匿名的define()調用加載腳本,則可能會發生此錯誤。

還可以看到,如果您在HTML中手動編寫腳本標記以加載具有一些命名模塊的腳本,但隨后嘗試加載一個匿名模塊,該模塊最終與手動加載的腳本中的一個命名模塊具有相同的名稱編碼腳本標記。

最后,如果您使用加載程序插件或匿名模塊(調用沒有字符串ID的define()的模塊)但不使用RequireJS優化器將文件組合在一起,則可能發生此錯誤。優化器知道如何正確命名匿名模塊,以便它們可以與優化文件中的其他模塊組合。

為了避免錯誤:

  • 確保通過RequireJS API加載調用define()的所有腳本。不要在HTML中手動編寫腳本標記以加載其中包含define()調用的腳本。

  • 如果手動編寫HTML腳本標記代碼,請確保它只包含命名模塊,并且不會加載與該文件中某個模塊同名的匿名模塊。

  • 如果問題是使用加載程序插件或匿名模塊但是RequireJS優化器不用于文件綁定,請使用RequireJS優化程序。


查看完整回答
反對 回復 2019-07-24
  • 3 回答
  • 0 關注
  • 636 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號