Crystal 模块路径要求问题
Crystal module path require issue
这是我的第一个 post 所以请原谅我的简洁。我正在学习 crystal 并尝试包含一个与另一个路径中的另一个文件具有共享名称的文件。根据 documentation 我可以使用 require "path/to/modules/"
并在其中包含所有文件,但是当我这样做然后使用导入的 class 时,它告诉我 class 不存在...
文档中的任何内容似乎都不起作用。是否有一些插件模块我需要让路径正常工作或者我误解了什么或者我有一些语法错误?
这是我的代码(使用主页上的示例)
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"
^
使用 require "modules/HttpRequest"
将根据 require rules.
在 CRYSTAL_PATH
中查找 modules/HttpRequest
要获取相对于当前文件的文件,您需要使用 require "./modules/HttpRequest"
。
这是我的第一个 post 所以请原谅我的简洁。我正在学习 crystal 并尝试包含一个与另一个路径中的另一个文件具有共享名称的文件。根据 documentation 我可以使用 require "path/to/modules/"
并在其中包含所有文件,但是当我这样做然后使用导入的 class 时,它告诉我 class 不存在...
文档中的任何内容似乎都不起作用。是否有一些插件模块我需要让路径正常工作或者我误解了什么或者我有一些语法错误?
这是我的代码(使用主页上的示例)
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"
^
使用 require "modules/HttpRequest"
将根据 require rules.
CRYSTAL_PATH
中查找 modules/HttpRequest
要获取相对于当前文件的文件,您需要使用 require "./modules/HttpRequest"
。