IPFS Angular11 ipfs-http-client new IpfsHttpClient = Error: export 'AbortController', Multiaddr
IPFS Angular11 ipfs-http-client new IpfsHttpClient = Error: export 'AbortController', Multiaddr
您好,我对 ipsf-http-client
使用 angular 有疑问。在 return new IpfsHttpClient()
上,我缺少 Multiaddr
、anySignal
、AbortController
和其他导出。我也有错误:这个表达式不可构造,(.../ipfs-http-client/types/src/index")' 有 no construct signatures
。请提示如何解决它或如何在 [= 中正确实现 ipsf-http-client 29=]申请
Angular CLI: 12.1.4
Node: 14.17.3
Package Manager: npm 6.14.13
OS: win32 x64
Python: 3.10
在 tsconfig:
"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 初始化令牌。
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 和其他导出。
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');
}
}
});
在我的离子项目中遇到烦人的 Multiaddr
、anySignal
和 AbortController
not found 错误 2 天后,我注意到我使用了不正确的 ipfs 包版本。详细说明:
我安装了 ipfs:npm install --save ipfs-http-client
。 official package documentation 在安装部分描述了这个命令。该命令安装了 ipfs 版本 54.0.2(我在项目工作目录的 package.json
文件中检出)。
official package documentation(查看右上角)中的官方 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管理器中的发布版本被误认为是开发版本。
您好,我对 ipsf-http-client
使用 angular 有疑问。在 return new IpfsHttpClient()
上,我缺少 Multiaddr
、anySignal
、AbortController
和其他导出。我也有错误:这个表达式不可构造,(.../ipfs-http-client/types/src/index")' 有 no construct signatures
。请提示如何解决它或如何在 [= 中正确实现 ipsf-http-client 29=]申请
Angular CLI: 12.1.4
Node: 14.17.3
Package Manager: npm 6.14.13
OS: win32 x64
Python: 3.10
在 tsconfig:
"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 初始化令牌。
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 和其他导出。
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');
}
}
});
在我的离子项目中遇到烦人的 Multiaddr
、anySignal
和 AbortController
not found 错误 2 天后,我注意到我使用了不正确的 ipfs 包版本。详细说明:
我安装了 ipfs:npm install --save ipfs-http-client
。 official package documentation 在安装部分描述了这个命令。该命令安装了 ipfs 版本 54.0.2(我在项目工作目录的 package.json
文件中检出)。
official package documentation(查看右上角)中的官方 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管理器中的发布版本被误认为是开发版本。