Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Feature request: Qualified subdirectories (directory-based module namespaces)

未关闭
#9,006 0 条评论 1 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
5/5
预计耗时
一周以上
新手友好度
35/100
Issue 类型
功能
描述清晰度
基本清楚
活跃度
活跃
技术栈
ocaml
领域
compilers

调研方向

Read the existing recursive source scanning behavior described in the issue and the related proposals #1974, #1805, and #2459. The issue does not name implementation files or tests; first locate where subdirs: true is handled in the compiler and review its module naming rules. Done means an opt-in qualified mode supports the shown directory hierarchy and duplicate filenames while preserving the default behavior.

由索引模型根据 Issue 内容生成。

描述

Feature request: Qualified subdirectories (directory-based module namespaces)

Hi! I've been using ReScript a bit in my free time recently, and have been really enjoying it. However I've found it quite difficult/frustrating to organize code/packages using ReScript's existing tooling (even when using the "monorepo" features).

I'd like to propose an opt-in feature similar to Dune's (include_subdirs qualified), where source directories automatically become part of the ReScript module hierarchy.

For example, given:

src/
  App.res
  Components/
    Button.res
    Input.res
  Admin/
    Button.res

App.res could reference Components.Button, Components.Input, and Admin.Button.

This would provide two benefits:

  • Better code organization: Module hierarchies could mirror the filesystem without manually creating wrapper modules.
  • Duplicate filenames: Files such as Components/Button.res and Admin/Button.res could coexist without module-name collisions.

Currently, recursive source scanning (subdirs: true) places all files in a flat module namespace.

Ideally, this would be an opt-in configuration (perhaps subdirs: "qualified"), preserving existing behavior by default. Directory modules could be implemented using compile-time aliases, without introducing additional JavaScript runtime wrappers.

Related issues
References

Thanks!
Ethan

主要语言
OCaml
星标
7.5k
派生
483
平均合并
20 小时
30 天内合并 PR
219

环境准备

在 Codespaces 中打开

在浏览器里用你自己的 GitHub 账号启动这个项目的开发容器。

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

rescript-lang/rescript 的其他 Issue

查看 rescript-lang/rescript 的全部 Issue

相似的 Issue

更多 Compilers Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。