3 回答

TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超9個(gè)贊
我有這個(gè)錯(cuò)誤,因?yàn)槲野藃equirejs文件以及直接包含在腳本標(biāo)記中的其他庫。那些庫(如lodash)使用了與require的define沖突的define函數(shù)。requirejs文件是異步加載的,因此我懷疑require的定義是在其他庫定義之后定義的,因此存在沖突。
要消除錯(cuò)誤,請(qǐng)使用requirejs包含所有其他js文件。

TA貢獻(xiàn)2041條經(jīng)驗(yàn) 獲得超4個(gè)贊
根據(jù)文檔:
如果在HTML中手動(dòng)編寫腳本標(biāo)記以使用匿名的define()調(diào)用加載腳本,則可能會(huì)發(fā)生此錯(cuò)誤。
還可以看到,如果您在HTML中手動(dòng)編寫腳本標(biāo)記以加載具有一些命名模塊的腳本,但隨后嘗試加載一個(gè)匿名模塊,該模塊最終與手動(dòng)加載的腳本中的一個(gè)命名模塊具有相同的名稱編碼腳本標(biāo)記。
最后,如果您使用加載程序插件或匿名模塊(調(diào)用沒有字符串ID的define()的模塊)但不使用RequireJS優(yōu)化器將文件組合在一起,則可能發(fā)生此錯(cuò)誤。優(yōu)化器知道如何正確命名匿名模塊,以便它們可以與優(yōu)化文件中的其他模塊組合。
為了避免錯(cuò)誤:
確保通過RequireJS API加載調(diào)用define()的所有腳本。不要在HTML中手動(dòng)編寫腳本標(biāo)記以加載其中包含define()調(diào)用的腳本。
如果手動(dòng)編寫HTML腳本標(biāo)記代碼,請(qǐng)確保它只包含命名模塊,并且不會(huì)加載與該文件中某個(gè)模塊同名的匿名模塊。
如果問題是使用加載程序插件或匿名模塊但是RequireJS優(yōu)化器不用于文件綁定,請(qǐng)使用RequireJS優(yōu)化程序。
添加回答
舉報(bào)