我正在嘗試創建一個自動將 nfts 部署到 ipfs 的專案。我下載了一個現有專案,我正在嘗試擴展功能
我的packages.json樣子是這樣的:
{
"name": "3_market_engine",
"main": "index.js",
"bin": "index.js",
"pkg": {
"assets": [
"layers/**/*",
"node_modules/**/*",
"src/**/*"
]
},
"scripts": {
"build": "node index.js",
"generate": "node index.js",
"generate_metadata": "node utils/generate_metadata.js",
},
"dependencies": {
"canvas": "^2.8.0",
"dotenv": "^16.0.3",
"gif-encoder-2": "^1.0.5",
"ipfs-http-client": "^59.0.0",
"sha1": "^1.1.1"
}
我可以npm run generate_metadata很好地運行該命令,但是每當我嘗試向const { ipfsClient } = require('ipfs-http-client');檔案中添加 require 陳述句時,都會出現錯誤:
錯誤 [ERR_PACKAGE_PATH_NOT_EXPORTED]:C:\source\3_market_nft_engine\node_modules\ipfs-http-client\package.json 在 throwExportsNotFound(節點:internal /modules/esm/resolve:358:9) 在 packageExportsResolve (node:internal/modules/esm/resolve:612:7) 在 resolveExports (node:internal/modules/cjs/loader:529:36) 在 Module._findPath ( node:internal/modules/cjs/loader:569:31) 在 Module._resolveFilename (node:internal/modules/cjs/loader:981:27) 在 Module._load (node:internal/modules/cjs/loader:841: 27) 在 Module.require (node:internal/modules/cjs/loader:1061:19) at require (node:internal/modules/cjs/helpers:103:18) 在 Object. (C:\source\3_market_nft_engine\utils\generate_metadata.js:4:20){代碼:'ERR_PACKAGE_PATH_NOT_EXPORTED'}
我試過了:
- 更改我的節點版本
- 重新安裝軟體包
- 改用紗線
uj5u.com熱心網友回復:
這是因為main該包中沒有package.json(https://github.com/ipfs/js-ipfs/blob/master/packages/ipfs-http-client/package.json)。根據changelog 中的此注釋,該軟體包旨在與 ESM 一起使用,但這也不能解決您的問題,因為沒有呼叫 export ipfsClient; 你需要import { create } from 'ipfs-http-client'。
編輯:如您的評論中所述,從包切換到 ESM 之前降級到一個版本也可以。評論中的詳細資訊。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/528164.html
