oclif无法识别创建的命令。

3

我正在尝试使用 oclif 构建一个命令行界面,但似乎对我尝试的任何内容都不起作用。我看到很多人都能让它正常工作,所以也许有人可以指出我的问题所在!

我的步骤:

 1. mkdir test && cd test
 2. npm init -f
 3. npm i oclif
 4. npx oclif generate my_test //this generates a new cli
 5. cd my_test
 6. npx oclif generate command bob
 7. npm link
 8. npx my_test bob

我总是经常遇到

 ›   Error: command bob not found

如果我执行 ./bin/run bob 命令,结果是一样的。

然而,如果我测试bob命令,则测试通过。

提前感谢您。

2个回答

2

很抱歉回复晚了... Intel的答案几乎是正确的 - 直到npm的第6个版本它确实是正确的。正确的做法是:

npm run build

oclif generate command 只是在 src/ 下创建命令的 Typescript 文件和测试类,而上面的命令会将其 Javascript 文件创建到 dist/ 中。 npm link 对您的项目可能没有任何影响 - 它只会创建一个指向它的符号链接。 npm test 则使用 ts-node 直接执行 Typescript。


谢谢!)) 我以为只有我一个人在抱怨仓库不工作,感觉自己快疯了:D 是不是在 oclif 文档中需要构建某个地方,我错过了? - Constantin Suiu
不,我不这么认为。虽然我只有选择性地阅读了 oclif.io 文档,但我没有看到它在那里被提及。 - Felix van Hove

1
运行npm build,然后你就拥有它了!

3
一个好的回答应该包括为何这能解决问题的解释,这样原帖作者和未来的读者都可以从中学习。 - Tyler2P
请阅读“[答案]”。如果您能提供为什么这是首选解决方案以及解释其工作原理的说明,那将更有帮助。我们想要教育,而不仅仅提供代码。 - the Tin Man

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