我在Windows 7上运行Rakudo 2019.03.1,Cro是由zef安装的。在快速入门关于Cro网站的部分之后,以下内容应该可以工作:
cro命令为您生成存根服务,以便更快地启动,并具有更好的默认值。在这里,我们使用它来创建一个简单的HTTP服务,ID为hello,并位于hello目录中:
cro stub http hello hello
...which确实能工作,它为项目生成了很多文件,包括.cro.yml文件,我认为它是服务的中心描述文件。但是,如果我试图跟踪这些文档并运行cro run (在hello目录中,我假设):
cro run命令将启动您的服务(如果您更改了一个文件,将自动重新启动服务):
cro run
...the服务未启动,但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不幸的是,这个错误信息没有告诉我。我错过了什么?
发布于 2019-07-16 00:07:10
更新
不知何故,我昨天在谷歌搜索时错过了这个Cro github发行,这正是我的问题所在。我在github问题中反向链接了这个question+answer。一个fix已经被合并了。,它将是Cro下一个版本的一部分。为快速反应的道具大家!
原始答案
这可以在蒂莫蒂莫的帮助下解决(谢谢!)
Cro::Tools::Runner调用perl6而不是perl6.bat,这是Windows所需要的。zef-installed模块中更改代码的重要信息。于是我转向%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:20000https://stackoverflow.com/questions/57047921
复制相似问题