错误 [ERR_PACKAGE_PATH_NOT_EXPORTED]:包子路径未由“exports”定义

rap*_*apt 26 javascript node.js node-modules package.json es6-modules

Node.js16.14.2、8.19.2 npm

我正在尝试运行一个Node.js导入OrbitDB. 这是脚本:

hello_orbitdb.js

// import the package
const OrbitDB = require('orbit-db');
Run Code Online (Sandbox Code Playgroud)

这是我尝试运行它的方式以及我收到的错误:

$ 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'
}
Run Code Online (Sandbox Code Playgroud)

所以我看了一下/node_modules/orbit-db/src/orbit-db-address.js,它是这样开始的:

'use strict'
const path = require('path')
const { CID } = require('multiformats/cid')
Run Code Online (Sandbox Code Playgroud)

我该如何纠正这个错误?

我的文件夹里node_modules

  "name": "orbit-db",
  "version": "0.28.7",
Run Code Online (Sandbox Code Playgroud)

  "name": "multiformats",
  "version": "10.0.2",
Run Code Online (Sandbox Code Playgroud)

Ala*_*ine 10

你的问题听起来像是一个依赖性问题。

首先,尝试删除node_modules目录并发出anpm install以重新导入依赖项。

如果问题仍然存在,请发出 anpm install --save multiformats@9.9.0并查看这是否可以解决您的问题。