我正尝试在TypeScript AMD网站中使用OSA库的浏览器部分:https://github.com/colinbdclark/osc.js(使用RequireJS。)
我打算至少在使用它的范围内编写定义文件。但是,当我通过require导入(最小化的)osc-browser js文件时:
//From the require config
oscbrowser: ["/scripts/lib/osc.js/dist/osc-browser.min"],
...
oscbrowser: {
export: "osc"
},
...
//From the typescript file
declare var osc;
Requirejs在运行时给我以下JavaScript错误:
未捕获的错误:模块名称“事件”尚未加载
上下文:_。使用require([])
根据Colin在下面的评论,我已经更新到最新的库,并且错误更改为引用了清单库。
未捕获的错误:模块名称“ slip”尚未加载
上下文:_。使用require([])
当我通过require config拉入所有组件时,如下所示:
EventEmitter: ["/scripts/lib/eventEmitter/EventEmitter"],
slip: ["/scripts/lib/slip.js/dist/slip.min"],
osc: ["/scripts/lib/osc.js/src/osc"],
osctransports: ["/scripts/lib/osc.js/src/osc-transports"],
oscbrowser: ["/scripts/lib/osc.js/src/platforms/osc-browser"],
和
EventEmitter:{
导出:“ EventEmitter”
},
osctransports:{
部门:[“ slip”,“ EventEmitter”]
},
振荡器浏览器:{
导出:“ osc”,
deps:[“ slip”,“ EventEmitter”,“ osc”,“ osctransports”]
},
该错误返回到事件错误:
未捕获的错误:模块名称“事件”尚未加载
上下文:_。使用require([])
如果我将osc-transports.js中的行更改为
EventEmitter = EventEmitter || require("events").EventEmitter;
至
EventEmitter = EventEmitter || require("EventEmitter") || require("events").EventEmitter;
因为我认为先前的要求仅适用于EventEmitter的NPM版本,所以javascript错误消失了,库似乎可以正常工作。
有谁比我有更多使用RequireJS的经验,为什么我不能只使用该库的dist / ocs-browser版本?
最佳答案
我是osc.js的创建者。直到最近,osc.js才直接支持异步模块加载器。看到您的问题后,我为universal module definition样式样板库添加了支持,因此osc.js version 1.1.3及更高版本现在应该可以与Require.js一起使用。