Node.js Browserify和扩展Buffer.prototype

Node.js Browserify和扩展Buffer.prototype,node.js,google-chrome-app,browserify,Node.js,Google Chrome App,Browserify,我正在尝试在chrome打包的应用程序中使用一些node.js模块。我在和串口通话 我扩展了缓冲区原型以添加'indexOf'方法 我使用的是Browserify,而现在似乎发生的事情是它没有接收到我的原型扩展。我的缓冲区最终是UInt8Array,没有可用的indexOf 以Browserify将采用的方式扩展缓冲区有什么诀窍吗 我的扩展看起来是这样的,但我也尝试过npm包,它们做同样的事情。下面的代码是从一个扩展中删除的,所以我认为问题不一定存在于我的代码中: Buffer.indexOf

我正在尝试在chrome打包的应用程序中使用一些node.js模块。我在和串口通话

我扩展了缓冲区原型以添加'indexOf'方法

我使用的是Browserify,而现在似乎发生的事情是它没有接收到我的原型扩展。我的缓冲区最终是UInt8Array,没有可用的indexOf

以Browserify将采用的方式扩展缓冲区有什么诀窍吗

我的扩展看起来是这样的,但我也尝试过npm包,它们做同样的事情。下面的代码是从一个扩展中删除的,所以我认为问题不一定存在于我的代码中:

Buffer.indexOf = function(haystack, needle, i) {
    if (!Buffer.isBuffer(needle)) {
        needle = new Buffer(needle);
    }

if (typeof i === 'undefined') { 
    i = 0;
}

var l = haystack.length - needle.length + 1;

while (i < l) {
    var good = true;
    for (var j = 0, n = needle.length; j < n; j++) {
        if (haystack.get(i + j) !== needle.get(j)) {
            good = false;
            break;
        }
    }
    if (good) {
        return i;
    }
    i++;
}

return -1;
};

Buffer.prototype.indexOf = function(needle, i) {
    return Buffer.indexOf(this, needle, i);
}
以Browserify将采用的方式扩展缓冲区有什么诀窍吗

我对此表示怀疑,因为browserify有自己的缓冲区实现


但更糟糕的是,使用您的模块的任何其他模块都会受到对Buffer.prototype的更改的影响。与其扩展核心组件的原型,不如创建一个助手函数。

是Chrome应用程序还是Chrome扩展?请编辑以使用正确的标记。我尝试使用缓冲区原型创建一个“MyBuffer”类,并对其进行扩展,但也没有成功。我的“MyBuffer”对象仍被转换为UInt8数组。有这么多的方式来保存字节,真是太令人兴奋了。。。