首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Angular11 IPFS -http-客户端新IpfsHttpClient =IpfsHttpClient:导出'AbortController',Multiaddr

Angular11 IPFS -http-客户端新IpfsHttpClient =IpfsHttpClient:导出'AbortController',Multiaddr
EN

Stack Overflow用户
提问于 2021-10-05 19:59:45
回答 1查看 948关注 0票数 4

你好,我有ipsf-http-client使用角的问题。在返回new IpfsHttpClient()时,我缺少了MultiaddranySignalAbortController和其他出口产品。我也有错误:这个表达式是不可构造的,(./ipfs client/type/src/index“)有no construct signatures

代码语言:javascript
复制
Angular CLI: 12.1.4
Node: 14.17.3
Package Manager: npm 6.14.13
OS: win32 x64
Python: 3.10

tsconfig内部:

代码语言:javascript
复制
"skipLibCheck": true,
"target": "es2017",
"module": "es2020",
"lib": [
  "es2018",
  "dom",
  "DOM.Iterable",
  "es2015", 
  "es2015.iterable",
],
"paths" : {
  "crypto": ["./node_modules/crypto-browserify"],
  "stream": ["./node_modules/stream-browserify"],
  "assert": ["./node_modules/assert-plus"],
  "http": ["./node_modules/stream-http"],
  "https": ["./node_modules/https-browserify"],
  "os": ["./node_modules/os-browserify"],
},
"allowSyntheticDefaultImports": true,
"esModuleInterop": true,

下面是主要的ipfs init令牌。

代码语言:javascript
复制
import { Injectable, InjectionToken, Inject } from '@angular/core';
import IpfsHttpClient from 'ipfs-http-client';

export const ipfsToken = new InjectionToken('The IPFS Token', {
  providedIn: 'root',
  factory: () => {
    try {
      return new IpfsHttpClient('ipfs.infura.io', '5001', {
        protocol: 'https'
      });
    } catch (err) {
      console.log('Error', err);
      throw new Error('Unable to access IPFS node daemon on Infura network');
    }
  }
});

我可以在下面的解决方案中防止可构造的错误,但我仍然缺少Multiaddr、anySignal、AbortController和其他导出。

代码语言:javascript
复制
import { Injectable, InjectionToken, Inject } from '@angular/core';
import IpfsHttpClient from 'ipfs-http-client';

export const ipfsToken = new InjectionToken('The IPFS Token', {
  providedIn: 'root',
  factory: () => {
    let contextClass : any = IpfsHttpClient;
    let context: IpfsHttpClient.IPFSHTTPClient = new contextClass('ipfs.infura.io', '5001', {
        protocol: 'https'
      });

    try {
        console.log("IPFS");
        
      return context;
    } catch (err) {
      console.log('Error', err);
      throw new Error('Unable to access IPFS node daemon on Infura network');
    }
  }
});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-01 21:53:04

在获得恼人的MultiaddranySignalAbortController在我的离子项目中找不到错误的2天后,我注意到我使用了不正确的ipfs包版本。详细说明:

我用:安装了npm install --save ipfs-http-client正式一揽子文件在安装部分中描述了这个命令。该命令安装了ipfs版本54.0.2 (我在项目工作目录中的package.json文件中签出)。

正式一揽子文件 (查看右上角)中的官方npm命令是npm i ipfs-http-client@52.0.4-rc.4

删除package.json ipfs部分和node_module文件夹后,我运行npm i ipfs-http-client@52.0.4-rc.4并使用npm install重新安装所有软件包。这一次一切顺利,没有任何错误。

PS:我认为npm经理发布的版本是错误的开发版本。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69456581

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档