3 回答
TA貢獻1820條經驗 獲得超9個贊
我有這個錯誤,因為我包含了requirejs文件以及直接包含在腳本標記中的其他庫。那些庫(如lodash)使用了與require的define沖突的define函數。requirejs文件是異步加載的,因此我懷疑require的定義是在其他庫定義之后定義的,因此存在沖突。
要消除錯誤,請使用requirejs包含所有其他js文件。
TA貢獻2041條經驗 獲得超4個贊
根據文檔:
如果在HTML中手動編寫腳本標記以使用匿名的define()調用加載腳本,則可能會發生此錯誤。
還可以看到,如果您在HTML中手動編寫腳本標記以加載具有一些命名模塊的腳本,但隨后嘗試加載一個匿名模塊,該模塊最終與手動加載的腳本中的一個命名模塊具有相同的名稱編碼腳本標記。
最后,如果您使用加載程序插件或匿名模塊(調用沒有字符串ID的define()的模塊)但不使用RequireJS優化器將文件組合在一起,則可能發生此錯誤。優化器知道如何正確命名匿名模塊,以便它們可以與優化文件中的其他模塊組合。
為了避免錯誤:
確保通過RequireJS API加載調用define()的所有腳本。不要在HTML中手動編寫腳本標記以加載其中包含define()調用的腳本。
如果手動編寫HTML腳本標記代碼,請確保它只包含命名模塊,并且不會加載與該文件中某個模塊同名的匿名模塊。
如果問題是使用加載程序插件或匿名模塊但是RequireJS優化器不用于文件綁定,請使用RequireJS優化程序。
添加回答
舉報
