需要适当的加载器来处理此文件类型 | * @type {import‘../../ ipfs / src / core / components / add-all’AddAll <import‘’HttpOptions>}

问题描述

我从GitHub下载了源代码并尝试运行它。 它运行了,但是出现了“ ipfs-api”问题,因此我安装了最新版本的“ iphs-http-client”,现在它弹出了很多与之相关的错误

如果告诉我原因也可以解决,请告诉我,我是新来的

error  in ./node_modules/ipfs-http-client/src/add-all.js

Module parse Failed: C:\Users\lione\Sample\Document-verification-on-Blockchain\node_modules\ipfs-http-client\src\add-all.js Unexpected token (16:17)
You may need an appropriate loader to handle this file type.
|    * @type {import('../../ipfs/src/core/components/add-all').AddAll<import('.').HttpOptions>}
|    */
|   async function * addAll (input,options = {}) {
|     const progressFn = options.progress
|

 @ ./node_modules/ipfs-http-client/src/index.js 32:12-32
 @ ./ethereum/ipfs.js
 @ ./pages/Org/show.js?entry
 @ multi ./pages/Org/show.js?entry
this is the error log

add-all.js

'use strict'

const CID = require('cids')
const toCamel = require('./lib/object-to-camel')
const configure = require('./lib/configure')
const multipartRequest = require('./lib/multipart-request')
const toUrlSearchParams = require('./lib/to-url-search-params')
const anySignal = require('any-signal')
const AbortController = require('abort-controller').default

module.exports = configure((api) => {
  // eslint-disable-next-line valid-jsdoc
  /**
   * @type {import('../../ipfs/src/core/components/add-all').AddAll<import('.').HttpOptions>}
   */
  async function * addAll (input,options = {}) {
    const progressFn = options.progress

    // allow aborting requests on body errors
    const controller = new AbortController()
    const signal = anySignal([controller.signal,options.signal])

    const res = await api.post('add',{
      searchParams: toUrlSearchParams({
        'stream-channels': true,...options,progress: Boolean(progressFn)
      }),timeout: options.timeout,signal,...(
        await multipartRequest(input,controller,options.headers)
      )
    })

    for await (let file of res.ndjson()) {
      file = toCamel(file)

      if (file.hash !== undefined) {
        yield toCoreInterface(file)
      } else if (progressFn) {
        progressFn(file.bytes || 0)
      }
    }
  }
  return addAll
})

/**
 * @typedef {import('../../ipfs/src/core/components/add-all').UnixFSEntry} UnixFSEntry
 */

/**
 * @returns {UnixFSEntry}
 */
function toCoreInterface ({ name,hash,size,mode,mtime,mtimeNsecs }) {
  const output = {
    path: name,cid: new CID(hash),size: parseInt(size)
  }

  if (mode != null) {
    output.mode = parseInt(mode,8)
  }

  if (mtime != null) {
    output.mtime = {
      secs: mtime,nsecs: mtimeNsecs || 0
    }
  }

  // @ts-ignore
  return output
}

index.js

'use strict'
/* eslint-env browser */

const CID = require('cids')
const multiaddr = require('multiaddr')
const multibase = require('multibase')
const multicodec = require('multicodec')
const multihash = require('multihashes')
const globSource = require('ipfs-utils/src/files/glob-source')
const urlSource = require('ipfs-utils/src/files/url-source')

/**
 * @typedef { import("./lib/core").ClientOptions } ClientOptions
 */

/**
 * @typedef {object} HttpOptions
 * @property {Headers | Record<string,string>} [headers] - An object or [Headers](https://developer.mozilla.org/en-US/docs/Web/API/Headers) instance that can be used to set custom HTTP headers. Note that this option can also be [configured globally](#custom-headers) via the constructor options.
 * @property {URLSearchParams | Record<string,string>} [searchParams] - An object or [`URLSearchParams`](https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams) instance that can be used to add additional query parameters to the query string sent with each request.
 * @property {object} [ipld]
 * @property {any[]} [ipld.formats] - An array of additional [IPLD formats](https://github.com/ipld/interface-ipld-format) to support
 * @property {(format: string) => Promise<any>} [ipld.loadFormat] - an async function that takes the name of an [IPLD format](https://github.com/ipld/interface-ipld-format) as a string and should return the implementation of that codec
 */

// eslint-disable-next-line valid-jsdoc
/**
 * @param {ClientOptions} options
 */
function ipfsClient (options = {}) {
  return {
    add: require('./add')(options),addAll: require('./add-all')(options),bitswap: require('./bitswap')(options),block: require('./block')(options),bootstrap: require('./bootstrap')(options),cat: require('./cat')(options),commands: require('./commands')(options),config: require('./config')(options),dag: require('./dag')(options),dht: require('./dht')(options),diag: require('./diag')(options),dns: require('./dns')(options),files: require('./files')(options),get: require('./get')(options),getEndpointConfig: require('./get-endpoint-config')(options),id: require('./id')(options),key: require('./key')(options),log: require('./log')(options),ls: require('./ls')(options),mount: require('./mount')(options),name: require('./name')(options),object: require('./object')(options),pin: require('./pin')(options),ping: require('./ping')(options),pubsub: require('./pubsub')(options),refs: require('./refs')(options),repo: require('./repo')(options),resolve: require('./resolve')(options),stats: require('./stats')(options),stop: require('./stop')(options),shutdown: require('./stop')(options),swarm: require('./swarm')(options),version: require('./version')(options)
  }
}

Object.assign(ipfsClient,{ CID,multiaddr,multibase,multicodec,multihash,globSource,urlSource })

module.exports = ipfsClient

解决方法

您似乎正在通过webpack使用babel来转译源代码,并且无法解析异步生成器函数语法。您可能需要添加插件或以其他方式修复您的配置。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...