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