我想在這裏消耗OSC庫的瀏覽器部分:(使用RequireJS)在我的打字稿AMD官方網站https://github.com/colinbdclark/osc.js使用打字稿AMD構建失敗,OSC對象導入OSC庫正確
我打算寫的定義至少在我使用它的範圍內。然而,當我導入通過(精縮與否)OSC對瀏覽器的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運行時錯誤:
Uncaught Error: Module name "events" has not been loaded yet for context: _. Use require([])
我已經更新到最新的磁帶庫根據Colin的評論以及參考滑動庫的錯誤更改。
Uncaught Error: Module name "slip" has not been loaded yet for context: _. Use 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:[」滑動「,」EventEmitter「] }, oscbrowser:{ export:」osc「, deps:[」slip「,」EventEmitter「,」osc「,」osctransports「] },
錯誤返回事件錯誤:
Uncaught Error: Module name "events" has not been loaded yet for context: _. Use require([])
如果我改變從
EventEmitter = EventEmitter || require("events").EventEmitter;
在OSC-transports.js行至
EventEmitter = EventEmitter || require("EventEmitter") || require("events").EventEmitter;
因爲我相信事先要求只適用於NPM版本的EventEmitter,JavaScript錯誤消失了圖書館似乎工作。
有沒有比RequireJS更有經驗的人有一個想法,爲什麼我不能只使用dist/ocs瀏覽器版本的庫?
@ colin-clark更新了庫,現在唯一剩下的問題是與typescript的模塊導入代碼有關的問題,因爲它涉及到這個bug:https://github.com/Microsoft/TypeScript/issues/2192。作爲解決方法,osc可以通過構造函數中的require語句進行分配。 – Chris