storacha/ipfs-car

npm 引入 web3.storage 依赖时,引用 ipfs-car 依赖的路径错误问题。

Closed this issue · 2 comments

npm 引入 web3.storage 依赖时会自动也引入一些和 ipfs-car 相关的包

运行

npm run serve

报错

ERROR  Failed to compile with 3 errors                                                                      

These dependencies were not found:

* ipfs-car/blockstore/memory in ./node_modules/web3.storage/src/platform.web.js
* ipfs-car/pack in ./node_modules/web3.storage/src/lib.js
* ipfs-car/unpack in ./node_modules/web3.storage/src/lib.js

To install them, you can run: npm install --save ipfs-car/dist/types/blockstore/memory ipfs-car/pack ipfs-car/unpack

看源文件

/app/node_modules/web3.storage/src/platform.web.js

文件开头代码

import { MemoryBlockStore } from 'ipfs-car/blockstore/memory'

看 ipfs-car 源代码

发现
memory 文件路径是 /app/node_modules/ipfs-car/dist/types/blockstore/memory.d.ts
pack 文件路径是 /app/node_modules/ipfs-car/dist/types/pack/index.d.ts
unpack 文件路径是 /app/node_modules/ipfs-car/dist/types/unpack/index.d.ts

于是乎,修改 /app/node_modules/web3.storage/src/platform.web.js 文件

import { MemoryBlockStore } from 'ipfs-car/dist/types/blockstore/memory'

再次运行

npm run serve

再次报错

 ERROR  Failed to compile with 3 errors                                                                      

These dependencies were not found:

* ipfs-car/dist/types/blockstore/memory in ./node_modules/web3.storage/src/platform.web.js
* ipfs-car/pack in ./node_modules/web3.storage/src/lib.js
* ipfs-car/unpack in ./node_modules/web3.storage/src/lib.js

To install them, you can run: npm install --save ipfs-car/dist/types/blockstore/memory ipfs-car/pack ipfs-car/unpack

求解

这个是不是官方的问题?有哪位大神知道的解答一下,谢谢!!!

初步解决,引入路径对了,但是还是报错,我先贴下路径代码

/app/node_modules/web3.storage/src/platform.web.js 文件
import { MemoryBlockStore } from 'ipfs-car/dist/types/blockstore/memory.d.ts'

/app/node_modules/web3.storage/src/lib.js:20 文件
import { pack } from 'ipfs-car/dist/types/pack/index.d.ts'
import { unpackStream } from 'ipfs-car/dist/types/unpack/index.d.ts'

报另一个错

 ERROR  Failed to compile with 3 errors                                                                      
 error  in ./node_modules/ipfs-car/dist/types/pack/index.d.ts

Module parse failed: Unexpected token (1:12)
You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders
> import type { ImportCandidateStream } from 'ipfs-core-types/src/utils';
| import type { MultihashHasher } from 'multiformats/hashes/interface';
| export type { ImportCandidateStream };

 @ ./node_modules/web3.storage/src/lib.js 18:0-58 105:34-38
 @ ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader-v16/dist??ref--0-1!./src/views/Web3.vue?vue&type=script&lang=js
 @ ./src/views/Web3.vue?vue&type=script&lang=js
 @ ./src/views/Web3.vue
 @ ./src/router/index.js
 @ ./src/main.js
 @ multi (webpack)-dev-server/client?http://www.abc-local.cn:1234&sockPath=/sockjs-node (webpack)/hot/dev-server.js ./src/main.js

Hey, unfortunately we're not able to fully help without more details in English. It should work if you are up-to-date with the latest Webpack version I think. Otherwise, you can try `import { Web3Storage } from 'web3.storage/dist/bundle.esm.min.js'. Closing for now!