错误:找不到模块“./candy-machine-cli.ts”

3
我正在跟随一个关于 NFT 铸造的 YouTube 视频,当我输入以下内容时:

ts-node js/packages/cli/src/candy-machine-cli.ts upload ./assets --env devnet --keypair ~/.config/solana/devnet-test.json

我遇到了以下错误:

node: internal/modules/cjs/loader: 936 抛出 err; ^

Error: 找不到模块 './candy-machine-cli.ts' 需要的堆栈: 在 Function.Module._resolveFilename(node:internal / modules / cjs / loader:933:15) 在函数中解决(node:internal / modules / cjs / helpers:108:19) 在 requireResolveNonCached(C:\ Users \ Victoria \ AppData \ Roaming \ npm \ node_modules \ ts-node \ dist \ bin.js:321:16)中 在 getProjectSearchDir(C:\ Users \ Victoria \ AppData \ Roaming \ npm \ node_modules \ ts-node \ dist \ bin.js:291:40)中 在主文件(C:\ Users \ Victoria \ AppData \ Roaming \ npm \ node_modules \ ts-node \ dist \ bin.js:193:27)中 在 Object.(C:\ Users \ Victoria \ AppData \ Roaming \ npm \ node_modules \ ts-node \ dist \ bin.js:351:5)中 在 Module._compile(node:internal / modules / cjs / loader:1101:14)中 在对象。Module._extensions..js(node:internal / modules / cjs / loader:1153:10)中 在 Module.load(node:internal / modules / cjs / loader:981:32)中 在 Function.Module._load(node:internal / modules / cjs / loader:822:12)中{code:'MODULE_NOT_FOUND',requireStack:['C:\ Users \ Victoria \ Desktop \ vicc \ metaplex \ js \ packages \ cli \ src \ imaginaryUncacheableRequireResolveScript'] }

然后我尝试了以下内容:

ts-node js/packages/cli/src/candy-machine-v1-cli.ts upload ./assets --env devnet --keypair ~/.config/solana/devnet-test.json

但是出现以下错误信息:

[ERR] error: unknown command 'upload'

我真的不知道该如何解决,请帮助我。

2
看起来你把文件从 candy-machine-cli.ts 重命名为 candy-machine-v1-cli.ts,至少你的两个示例使用了不同的文件。 - Khez
当我查看src下面的内容时,出现了“candy-machine-v1-cli.ts”和“candy-machine-v2-cli.ts”。所以我随机选择了一个,看看是否会有任何变化。结果是另一个错误出现了。 - Victoriavv
3个回答

3

我也遇到了同样的问题。关键在于使用candy-machine-v2-cli.ts实现并使糖果机工作。

Candy Machine v1已被弃用,使用v2来创建您的糖果机。

步骤保持不变,您可以尝试运行以下命令(可在此处找到解释here):

ts-node ~/metaplex/js/packages/cli/src/candy-machine-v2-cli.ts upload \
    -e devnet \
    -k ~/.config/solana/devnet.json \
    -cp config.json \
    -c example \
    ./assets

除此之外,我建议你阅读糖果机 v2的文档。它全面地涵盖了相关事项。

谢谢,我按照文档创建了一个位于src下的config.json文件,但现在它显示“错误:ENOENT:没有这样的文件或目录,打开'config.json'”。 - Victoriavv
我也在想为什么其他人可以在命令中简单地输入“candy-machine-cli.ts”,而不像我遇到的问题,我们从metaplex克隆了整个项目,所以我想我们应该得到相同的结果? - Victoriavv
1
嘿,我也遇到了相同的config.json错误。我在他们的Github存储库中打开了一个问题,但仍在等待回复。我真的认为某个地方存在一些破坏点。请查看此问题:https://github.com/metaplex-foundation/metaplex/issues/1553 - jeremy
我猜其他人之所以可以简单地输入“candy-machine-cli.ts”并使一切正常工作,可能是因为他们在v1仅可用的时候使用了metaplex的nft糖果机(并且没有必要按版本号调用事物)。如果你看一下/js/packages/cli/src/目录,就会发现“candy-machine-cli.ts”已经不再可用了。 - jeremy
哦,那很有道理,但我跟随的两个YouTube视频都是在2021年10月和11月制作的,Metaplex可能更新了糖果机。 - Victoriavv

0

出现该错误是因为您将糖果机安装在与此位置不同的地方:js/packages/cli/src/candy-machine-v1-cli.ts。我也遇到了同样的问题。我在 Linux 中将项目克隆到〜/metaplex目录中。

git clone https://github.com/metaplex-foundation/metaplex.git ~/metaplex

然后在~/metaplex目录下运行以下命令来安装Metaplex:

yarn install --cwd js

检查版本号。 candy-machine-v2-cli.ts 位于 ~/metaplex

ts-node ~/metaplex/js/packages/cli/src/candy-machine-v2-cli.ts --version

所以当我运行上传命令时,我会放置 candy-machine-v2-cli.ts 的位置。

ts-node ~/metaplex/js/packages/cli/src/candy-machine-v2-cli.ts upload -e devnet -k ~./config/solana/devnet.json -cp config.json ./assets 

注意

由于您使用的是Windows系统,~/可能无法正常工作。请编写正确的路径。


0

首先,在你的根目录中创建一个 config.json 文件。遵循https://docs.metaplex.com/candy-machine-v2/configuration

然后在终端中运行以下命令 ---

ts-node js/packages/cli/src/candy-machine-v2-cli.ts upload -e devnet --keypair -cp config.json -c example ./assets

通过使用-- solana config get 来获取你的密钥路径。

这对我有用...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接