最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

找不到变量:缓冲区

运维笔记admin8浏览0评论

找不到变量:缓冲区

找不到变量:缓冲区

我正在尝试在我的react-native应用程序中使用节点模块,并且在这里采用ReactNativify方法。

我现在已经全部设置好了,我可以很好地加载加密软件包了。但是,当我添加eth-lightwallet时,事情变得很奇怪。

自从我添加了该软件包以来,npm一直没有安装任何依赖项。这意味着我必须手动添加它们。每次我安装某种与eth-lightwallet相关的依赖项时,都会卸载该模块。尽管很乏味和烦人,但我希望它能为我当前的问题提供启示。

现在,我遇到的是Can't find variable: Buffer,它正在标准库的util文件夹中引发。我看过代码,它是从全局名称空间访问Buffer的。问题是,我正在将Buffer导入到全局名称空间中。看看我的global.js

// Inject node globals into React Native global scope.
global.Buffer = require('buffer').Buffer;
global.process = require('process');
global.process.env.NODE_ENV = __DEV__ ? 'development' : 'production';

// Needed so that 'stream-http' chooses the right default protocol.
global.location = {
    protocol: 'file:',
};

// Don't do this in production. You're going to want to patch in
//  or similar.
global.crypto = {
    getRandomValues(byteArray) {
        for (let i = 0; i < byteArray.length; i++) {
            byteArray[i] = Math.floor(256 * Math.random());
        }
    },
};

我的猜测是,在加载此全局变量之前,正在评估标准库,因此会引发错误。

回答如下:

我运行了npm install buffer,并将其放在需要Buffer的文件的顶部:

global.Buffer = global.Buffer || require('buffer').Buffer

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论