Saya mendapatkan kesalahan ini saat menelusuri webapp untuk pertama kalinya (biasanya di browser dengan cache yang dinonaktifkan).
Kesalahan: Modul anonim define () tidak cocok: fungsi (memerlukan) {
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
});
});
Adakah yang tahu persis apa arti kesalahan ini dan mengapa itu terjadi?
file sumber , diskusi singkat tentang hal itu di halaman masalah github
javascript
jquery
requirejs
Adonis K. Kakoulidis
sumber
sumber
Saya mengalami kesalahan ini karena saya menyertakan file requirejs bersama dengan librairies lain yang disertakan secara langsung dalam tag script. Librairies (seperti lodash) menggunakan fungsi define yang bertentangan dengan define yang harus. File Requirejs memuat secara tidak sinkron, jadi saya curiga bahwa define yang diperlukan didefinisikan setelah perpustakaan lain mendefinisikan, maka konflik.
Untuk menghilangkan kesalahan, sertakan semua file js Anda yang lain dengan menggunakan requireejs.
sumber
Dalam memulai dengan reactjs saya mengalami masalah dan sebagai pemula dokumen mungkin juga ditulis dalam bahasa Yunani.
Masalah yang saya temui adalah bahwa sebagian besar contoh pemula menggunakan "definisi anonim" ketika Anda harus menggunakan "string id".
mendefinisikan anonim
tentukan dengan string id
Ketika Anda menggunakan define dengan id string maka Anda akan menghindari kesalahan ini ketika Anda mencoba menggunakan modul seperti:
sumber
Per dokumen :
sumber
Perlu diketahui bahwa beberapa ekstensi browser dapat menambahkan kode ke halaman. Dalam kasus saya, saya memiliki plugin "Emmet in all textareas" yang mengacaukan kebutuhan saya. Pastikan tidak ada kode tambahan yang ditambahkan beign ke dokumen Anda dengan memeriksanya di browser.
sumber
Jawaban yang ada menjelaskan masalah dengan baik, tetapi jika menyertakan file skrip Anda menggunakan atau sebelum needJS bukan pilihan yang mudah karena kode warisan solusi yang sedikit membingungkan adalah untuk menghapus keharusan dari lingkup jendela sebelum tag skrip Anda dan kemudian mengembalikannya setelah kata sandi. Dalam proyek kami ini dibungkus dengan panggilan fungsi sisi server tetapi secara efektif browser melihat yang berikut:
Bukan yang paling rapi tetapi tampaknya berfungsi dan telah menyelamatkan banyak refractoring.
sumber
script
elemen.(function(){ var define = undefined; // the UMD registration code won't find the global 'define' anymore! // generated content goes here })()
Atau Anda bisa menggunakan pendekatan ini.
<script data-main="js/app.js" src="js/require.js"></script>
Apa yang akan dilakukan itu akan memuat skrip Anda setelah memuat require.js .
sumber