Hola, tengo un problema con ipsf-http-client usando angular. Al devolver new IpfsHttpClient() , me faltan Multiaddr , anySignal , AbortController y otras exportaciones. También tengo un error: esta expresión no se puede construir, (.../ipfs-http-client/types/src/index")' no construct signatures . Por favor, para obtener sugerencias sobre cómo resolverlo o cómo implementar correctamente ipsf-http -cliente en aplicación angular
Angular CLI: 12.1.4 Node: 14.17.3 Package Manager: npm 6.14.13 OS: win32 x64 Python: 3.10dentro de 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,A continuación se muestra el token de inicio principal de 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'); } } });Puedo evitar un error construible con la solución a continuación, pero aún tengo Missing Multiaddr, anySignal, AbortController y otras exportaciones.
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'); } } });Después de 2 días de recibir el molesto Multiaddr , anySignal y AbortController not found en mi proyecto iónico, noté que estaba usando la versión incorrecta del paquete ipfs . Elaborar:
Instalé ipfs con: npm install --save ipfs-http-client . La documentación oficial del paquete describe este comando en la sección Instalación. El comando instaló la versión 54.0.2 de ipfs (revisé el archivo package.json en el directorio de trabajo del proyecto).
El comando oficial de npm en la documentación del paquete oficial (consulte la esquina superior derecha) es npm i ipfs-http-client@52.0.4-rc.4 .
Después de eliminar la sección package.json ipfs y la carpeta node_module , ejecuté npm i ipfs-http-client@52.0.4-rc.4 y reinstalé todos los paquetes usando npm install . Esta vez funcionó sin ningún error.
PD: Creo que la versión de lanzamiento en el administrador de npm se confunde con una versión de desarrollo.