使用cro命令行工具时出现问题

zb2*_*226 9 windows perl6 cro raku

我在Windows 7上运行Rakudo Star 2019.03.1,Cro由安装zef。按照Cro网站上的“ 入门”部分,以下内容应适用:

cro stub命令可为您生成存根服务,以更快地启动并具有更好的默认值。在这里,我们使用它来创建一个简单的HTTP服务,其ID为hello并位于hello目录中:

cro stub http hello hello

...实际上确实有效,它会为项目生成许多文件,包括该.cro.yml文件,我认为这是该服务的中央描述文件。但是,如果我尝试遵循文档并运行cro runhello我假设是从目录内部):

cro run命令将启动您的服务(如果更改文件,则会自动重新启动服务):

cro run

...该服务未启动但cro出现错误:

A react block:
  in sub run-services at C:\rakudo\share\perl6\site\sources\709F4B18755ADE6922C88B8C44A0930A5DDD77C9 (Cro::Tools::CLI) line 227
  in sub MAIN at C:\rakudo\share\perl6\site\sources\709F4B18755ADE6922C88B8C44A0930A5DDD77C9 (Cro::Tools::CLI) line 199
  in block <unit> at C:\rakudo\share\perl6\site\resources\C1E87B0F084684C12CD87240AE4C12E746174570 line 1
  in sub MAIN at C:\rakudo\share\perl6\site\bin\cro line 3
  in block <unit> at C:\rakudo\share\perl6\site\bin\cro line 1

Died because of the exception:
    no such file or directory
      in any  at C:\rakudo\share/perl6/runtime/CORE.d.setting.moarvm line 1
      in sub run-services at C:\rakudo\share\perl6\site\sources\709F4B18755ADE6922C88B8C44A0930A5DDD77C9 (Cro::Tools::CLI) line 227
      in sub MAIN at C:\rakudo\share\perl6\site\sources\709F4B18755ADE6922C88B8C44A0930A5DDD77C9 (Cro::Tools::CLI) line 199
      in block <unit> at C:\rakudo\share\perl6\site\resources\C1E87B0F084684C12CD87240AE4C12E746174570 line 1
      in sub MAIN at C:\rakudo\share\perl6\site\bin\cro line 3
      in block <unit> at C:\rakudo\share\perl6\site\bin\cro line 1
Run Code Online (Sandbox Code Playgroud)

不幸的是,此错误消息没有对我说话。我想念什么?

zb2*_*226 8

更新资料

我以某种方式错过了昨天的Cro github问题,这正是我的问题所在。我在github问题中反向链接了这个问题和答案。此后已合并了一个修复程序,修复程序将成为下一版Cro的一部分。迅速回应大家的道具!


原始答案

这可以在timotimo(谢谢!)的帮助下解决,

  • 建议的Cro::Tools::Runner呼叫,perl6而不是perl6.batWindows所需的呼叫。
  • 向我指出了这个答案,其中包含有关更改已zef安装模块中的代码的重要信息。

因此,我转到的%USERPROFILE%\.zef\store\cro-0.8.1.tar.gz\cro-0.8.1\lib\Cro\Tools第269行中的可执行文件名称并对其进行了修补Runner.pm6。然后,我回到%USERPROFILE%\.zef\store\cro-0.8.1.tar.gz\cro-0.8.1并重新编译并使用以下命令安装了该模块(请注意,该命令--/test会跳过测试,这会花费很多时间):

C:\...\.zef\store\cro-0.8.1.tar.gz\cro-0.8.1>zef install . --force-install --/test --verbose
The following local path candidates are already installed: .
===> Installing: cro:ver<0.8.1>
===> Install [OK] for cro:ver<0.8.1>

1 bin/ script [cro] installed to:
C:\rakudo\share\perl6\site\bin
Run Code Online (Sandbox Code Playgroud)

现在,cro run向我喷出我认为是ANSI代码的代码,但是它正在起作用:)

C:\ws\perl6\hello>cro run
?[1;32mÔûÂ Starting hello (hello)?[0m
?[32m­ƒöî Endpoint HTTP will be at http://localhost:20000/?[0m
?[32m­ƒôô hello ?[0mListening at http://localhost:20000
Run Code Online (Sandbox Code Playgroud)

  • 这就是我今天早上写的。“别忘了单击答案上的复选标记。:)除非您等到可以对其进行编辑以添加指向您的错误报告的链接。;)”但是我暂停了一下,检查您是否有,然后不得不去做其他事情,现在又回到这里,查看您的附录,您对此问题的评论,以及ugexe,jnthn和Altai-man付诸行动。因此,谢谢,请将附录移至顶部,注意修复的内容-然后不要忘记接受您的出色回答。:) (2认同)