9

我在 Windows 7 上运行 Rakudo Star 2019.03.1,Cro 由zef. 在Cro 网站上的入门部分之后,以下内容应该有效:

cro stub 命令会为您生成 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

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

4

1 回答 1

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并修补了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

现在,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
于 2019-07-16T00:07:10.677 回答