Tarayıcı tarafında kullanılan ancak mocha ile sunucu tarafında test edilen bir nesne kümem var. AMD yüklemesi için require.js kullanıyorum. Require.js sitesi tanımlanan modüller Bu kod biraz node.js çalışmaya almak için sunucu tarafındaki amdefine kullanarak önerir:testlerde amdefine ayarlamak mümkün mü, bu yüzden tüm modül dosyalarında tanımlamak zorunda kalmamalıyım?
if (typeof define !== 'function') {
var define = require('amdefine')(module)
}
Tamam. Ama bunu Node'da kullanmak istediğim her bir modüle koymam gerekiyor. Benim durumumda bu, istemci tarafını kullandığım herhangi bir koddan çıkarmam gerektiği anlamına gelir (çoğu).
Bu kod parçasını sınama yerine koymanın bir yolu olup olmadığını merak ediyorum, böylece istemcinin yan koduna koymak zorunda kalmam. Dosyalarımda sadece sınamalar için gerekli olacak kodun olması aptalca görünüyor - test koduna koymak daha mantıklı. Ancak, ne zaman bir hata alıyorum bunu:
Error: amdefine with no module ID cannot be called more than once per file.
at runFactory (/home/vmplanet/dev/alpha/web/node_modules/amdefine/amdefine.js:159:23)
at define (/home/vmplanet/dev/alpha/web/node_modules/amdefine/amdefine.js:275:13)
at Object.<anonymous> (/home/vmplanet/dev/alpha/web/assets/src/coffee/delta/dataLayer.coffee:4:3)
at Object.<anonymous> (/home/vmplanet/dev/alpha/web/assets/src/coffee/delta/dataLayer.coffee:158:4)
at Module._compile (module.js:456:26)
at Object.loadFile (/usr/lib/node_modules/coffee-script/lib/coffee-script/coffee-script.js:179:19)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
at require (module.js:380:17)
amdefine kodu yalnızca bir yerdir, çünkü garip bir hata var - Test dosyanın üst. Bu amdefine kodunu test etmeme ve sadece benim testime koymanın bir yolu var mı ve hala sunucu tarafını çalıştırmaya yönelik testler alıyorum - amdefine kodunu müşteri tarafına çıkarmak zorunda kalmadan mı?
Bu çok ilginç. Bir bakacağım. Bu kadar tozlu bir soruya cevap verdiğiniz için teşekkürler. – jcollum
Birinin fayda sağlayacağını düşündüm. – Louis
https://github.com/ajaxorg/node-amd-loader bu doğru mu? – jcollum