Node.js package.json 是否需要位于存储库的根目录?

Does a Node.js package.json need to be at the root of the repository?

我有一个 Node.js 包,当前位于 GitHub 存储库的子目录中。我目前可以在不设置存储库字段的情况下发布它,但随后我的用户将收到警告,并且节点包存储库页面上的有用信息比他们可能的要少(缺少问题和拉取请求链接)。

如果我将 package.json 中的 repository 字段设置为指向父存储库,这样行得通吗?是否会因为 package.json 文件不在该存储库的根目录(尤其是 npm)而导致任何问题?

If I set the repository field in package.json to point to the parent repository, will that work?

是的。此字段未被任何关键的 npm 功能使用。如果贡献者想要克隆一个 repo 以便他们可以在项目上工作,那就是这样。

Will anything break because the package.json file is not at the root of that repository (npm, in particular)?

没有。我不相信任何东西都会坏掉。

  • 您应该将 repository 字段设置为父项目的顶级 .git 路径。该字段的目的是让 SCM(git 等)能够克隆项目。在您的情况下,最接近的是父项目。这应该避免警告消息。
  • 您应该将 bugs 字段设置为问题页面。这应该会显示在 npm 网站上。我不认为 repositorybugs 直接相关,或者 npm 对一个基于另一个的任何假设。
  • 如果您没有其他网站,您可以将 homepage 设置为 github URL 到包含父 repo 中此 npm 模块的目录.将 README.md 文件放在那里,github 会将其呈现在目录内容下方。