使用TypeScript导入OSC库AMD无法正确构建osc对象

时间:2015-07-21 00:14:50

标签: javascript requirejs typescript osc

我试图在我的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浏览器版本?

1 个答案:

答案 0 :(得分:2)

我是osc.js的创造者。直到最近,osc.js并没有直接支持异步模块加载器。在看到你的问题后,我添加了对universal module definition样式样板库的支持,因此osc.js version 1.1.3及以上版本现在可以与Require.js一起使用。