目前我必须在每个文件的顶部执行此操作:
(require "dynamore/dynamore.rkt")
(require "dynamore/db.rkt")
(require "dynamore/types.rkt")
我希望能够做这样的事情:
(require dynamore)
最好不必开发我自己的收藏。
最佳答案
如果您不想创建包(这意味着您需要相对地require
):
- 如果
dynamore
只包含这三个文件,您可以使用reprovide-lang
的glob-in
如下:(require (glob-in "dynamore/*.rkt"))
. 您还可以在使用 the main functionality 的
dynamore
中创建main.rkt
reprovide-lang
专门重新提供这三个文件:#lang reprovide "dynamore.rkt" "db.rkt" "types.rkt"
要使用它,只需
(require "dynamore/main.rkt")
。不使用
reprovide-lang
的 native 解决方案是使用all-from-out
手动:#lang racket/base (require "dynamore.rkt" "db.rkt" "types.rkt") (provide (all-from-out "dynamore.rkt" "db.rkt" "types.rkt"))
如果你更喜欢创建一个包,那么按照上面的解决方案2(创建main.rkt
等),在dynamore中创建
目录如下:info.rkt
#lang info
(define collection "dynamore")
然后运行 raco pkg install
。从现在开始,您将能够从任何地方(require dynamore)
。
注意:要安装reprovide-lang
,请运行raco pkg install reprovide-lang
。
关于scheme - Racket - 需要整个目录的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57439852/