我正在Windows 7上运行Rakudo Star 2019.03.1,Cro已由zef
安装。在Getting Started上的Cro website部分之后,以下应该可以工作:
cro stub命令为您生成存根服务,以开始使用 更快,默认值更好。在这里我们用它来创建一个 简单的HTTP服务,ID为hello,位于hello目录中:
cro stub http hello hello
...实际上确实有效,它会为项目生成许多文件,包括.cro.yml
文件,我认为这是该服务的中央描述文件。但是,如果我尝试遵循文档并运行cro run
(我假设是从hello
目录内部):
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
很遗憾,此错误消息没有与我交谈。我想念什么?
答案 0 :(得分:7)
更新
昨天在谷歌搜索时我不知怎么地错过了这个Cro github issue,这正是我的问题所在。我在github问题中反向链接了这个问题和答案。 fix has since been merged,并将成为Cro下一版本的一部分。为大家的快速反应做好准备!
原始答案
可以在timotimo(谢谢!)的帮助下解决此问题,
Cro::Tools::Runner
调用perl6
而不是perl6.bat
对于Windows。zef
安装的模块中的代码的重要信息。因此,我转到%USERPROFILE%\.zef\store\cro-0.8.1.tar.gz\cro-0.8.1\lib\Cro\Tools
,并在Runner.pm6
的第269行中修补了可执行文件的名称。然后,我回到%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
现在,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