水晶模块路径要求问题

时间:2018-11-11 13:13:46

标签: crystal-lang

这是我的第一篇文章,因此请简洁起见。我正在学习Crystal,并尝试包含一个与另一个路径中的另一个文件具有共享名称的文件。根据{{​​3}},我可以使用require "path/to/modules/"并在其中包含所有文件,但是当我这样做时,我又使用了导入的类,它告诉我该类不存在...

文档中的所有内容似乎都无效。是否需要一些插件模块才能使路径正常工作,还是我误会了某些东西或语法有误?

这是我的代码(使用主页上的示例)

require "http/server"
require "modules/HttpRequest"

server = HTTP::Server.new do |context|
  context.response.print(request.result)
end

server.listen(80)

文件HttpRequest.cr位于/modules/中。

我得到的错误

Error in Server.cr:2: while requiring "modules/HttpRequest": can't find file 'modules/HttpRequest'

If you're trying to require a shard:
- Did you remember to run `shards install`?
- Did you make sure you're running the compiler in the same directory as your shard.yml?

require "modules/HttpRequest"
^

1 个答案:

答案 0 :(得分:4)

使用require "modules/HttpRequest"将根据require rulesmodules/HttpRequest中查找CRYSTAL_PATH

要要求相对于当前文件的文件,您需要使用require "./modules/HttpRequest"