Node.js 16.14.2,npm 8.19.2。
我正在尝试运行一个导入OrbitDB的简单的OrbitDB脚本。下面是脚本:
hello_orbitdb.js
// import the package
const OrbitDB = require('orbit-db');下面是我试图运行它的方法,以及我所得到的错误:
$ node hello_orbitdb.js
node:internal/modules/cjs/loader:488
throw e;
^
Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: Package subpath './cid' is not defined by "exports" in /node_modules/multiformats/package.json
at new NodeError (node:internal/errors:371:5)
at throwExportsNotFound (node:internal/modules/esm/resolve:453:9)
at packageExportsResolve (node:internal/modules/esm/resolve:671:7)
at resolveExports (node:internal/modules/cjs/loader:482:36)
at Function.Module._findPath (node:internal/modules/cjs/loader:522:31)
at Function.Module._resolveFilename (node:internal/modules/cjs/loader:919:27)
at Function.Module._load (node:internal/modules/cjs/loader:778:27)
at Module.require (node:internal/modules/cjs/loader:1005:19)
at require (node:internal/modules/cjs/helpers:102:18)
at Object.<anonymous> (/node_modules/orbit-db/src/orbit-db-address.js:3:17) {
code: 'ERR_PACKAGE_PATH_NOT_EXPORTED'
}所以我看了一下/node_modules/orbit-db/src/orbit-db-address.js,它是如何开始的:
'use strict'
const path = require('path')
const { CID } = require('multiformats/cid')如何纠正此错误?
在我的node_modules文件夹中
"name": "orbit-db",
"version": "0.28.7",和
"name": "multiformats",
"version": "10.0.2",发布于 2022-10-28 05:40:47
你的问题听起来就像依赖问题。
首先,尝试删除node_modules目录并发出一个npm install,以便重新导入依赖项。
如果问题持续存在,发出一个npm install --save multiformats@9.9.0,看看这是否纠正了您的问题。
发布于 2022-10-30 01:45:38
您的主要问题是orbit-db依赖于自v1.0.0以来一直是ES模块的multiformats,但是您展示的orbit-db源代码有
const { CID } = require('multiformats/cid')ES模块只能通过动态的CommonJS语句加载到import()模块中。请参阅ES模块require上的require文档。
不支持使用require加载ES模块,因为ES模块具有异步执行。相反,使用import()从CommonJS模块加载ES模块。
您必须打开一个PR,将require更新为动态import('multiformats/cid')。最好的位置可能是区块,但是接下来您将把static isValid方法的API从同步更改为异步。似乎没有在很多地方被使用和API似乎是内部的,也就是不面向公众的,这不是一个很大的努力。
不过,您可能更喜欢使用更简单的路由,并将您的版本的orbit-db降级,而不是v0.26.0 ( 使用 ),后者是旧的cids包(即CommonJS )。
更新package.json条目以获取orbit-db
"orbit-db": "^0.26.0"重新安装:
npm ihttps://stackoverflow.com/questions/74172640
复制相似问题