我试图在我的TypeScript AMD网站上使用OSC库的浏览器部分: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错误:
未捕获错误:尚未加载模块名称“events” 上下文:_。使用require([])
我已根据Colin的评论更新到最新的库,并且错误更改以引用滑动库。
未捕获错误:尚未加载模块名称“slip” 上下文:_。使用require([])
当我通过require配置提取所有组件时,如下所示:
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:{ deps:[“slip”,“EventEmitter”] }, oscbrowser:{ 出口:“osc”, deps:[“slip”,“EventEmitter”,“osc”,“osctransports”] },
错误返回事件错误:
未捕获错误:尚未加载模块名称“events” 上下文:_。使用require([])
如果我从
更改osc-transports.js中的行EventEmitter = EventEmitter || require("events").EventEmitter;
到
EventEmitter = EventEmitter || require("EventEmitter") || require("events").EventEmitter;
因为我认为先前的要求只适用于EventMmitter的NPM版本,所以javascript错误消失了,图书馆似乎有效。
有没有比我更多使用RequireJS经验的人知道为什么我不能只使用该库的dist / ocs浏览器版本?
答案 0 :(得分:2)
我是osc.js的创造者。直到最近,osc.js并没有直接支持异步模块加载器。在看到你的问题后,我添加了对universal module definition样式样板库的支持,因此osc.js version 1.1.3及以上版本现在可以与Require.js一起使用。