问题描述
我从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来转译源代码,并且无法解析异步生成器函数语法。您可能需要添加插件或以其他方式修复您的配置。