requirejs 和 ByteBuffer

requirejs and ByteBuffer

我是 javascript 新手,google 没有帮助:

我试图在 require.js 模块中加载 ByteBuffer.js:

define(['js/ByteBufferAB'], function (ByteBufferAB) {

var MessageBase = function () {
    this._version = 0; // unsinged int 16 bits
    this._dataType = "";

};

MessageBase.prototype.toBytes = function () {
    //console.log( new ByteBufferAB(58));
    var headerBytes = new ByteBufferAB(58); // <-- here comes the error
    headerBytes.clear();
    return headerBytes;
};


return MessageBase;

});

语法相同 math.js 已正确加载。

但是 ByteBufferAB.js 出现以下错误:

Uncaught TypeError: undefined is not a function

我做错了什么? 谢谢你的帮助

在您的 define 调用中,您将模块称为 js/ByteBufferAB,因此 RequireJS 会查找名为 js/ByteBufferAB 的模块。但是,模块 defines itselfByteBuffer:

/* AMD */ else if (typeof define === 'function' && define["amd"])
    define("ByteBuffer", ["Long"], function(Long) { return  loadByteBuffer(Long); });

因为模块名称是硬编码的,所以您需要在给 RequireJS 的配置中的 paths 中有这样的映射:

ByteBuffer: "js/ByteBufferAB"

并且您需要在 define 调用中将模块称为 ByteBuffer

None 如果这个库的开发人员没有硬编码名称但他们已经硬编码,那么这将是必需的,所以我们在这里。