NodeJS 基于NX包的存储库:项目根目录与工作空间根目录?

6rqinv9w  于 2023-01-08  发布在  Node.js
关注(0)|答案(1)|浏览(273)

如果我有一个基于包的带有NX的monorepo,哪个目录是projectRoot,哪个是workspaceRoot
来自文件(https://nx.dev/reference/project-configuration):
{项目根目录}和{工作空间根目录}
{projectRoot}是由当前项目根目录的路径替换的关键字。{workspaceRoot}是由工作区根目录的路径替换的关键字。
这是一个非常明显的解释,我想知道哪个是哪个,因为我有这样的目录结构:

(git repo root dir)
|
+- nx.json
+- package.json - it says `"workspaces": [ "packages/*" ]`
|
+- packages/
   |
   +- package1/
   +- package2/

因为package.json将我的packages/*称为“工作区”,所以我猜测每个包都是一个工作区,因此workspaceRoot必须单独引用每个包,而projectRoot必须引用nx.json配置的顶层目录,但我完全不知道如何确认这一点。(设置各种inputs作为看到它是命中或错过),和绝对没有任何工作。
为了澄清我的困惑:“workspace root”是指包含所有工作区(即包)的目录,还是指“某个工作区(即包)的根目录”(这里我假设“workspace”==“package”,这可能不是真的)。

wqsoz72f

wqsoz72f1#

基于对https://nx.dev/concepts/mental-model的阅读,我的定义如下:

  • "project"=每个包,例如库或应用程序,它引用packages/中的每个子目录
  • "projectRoot"=每个包的根。在问题的示例中,它将是packages/package1packages/package2
  • "workspace"=所有包/项目的集合。注意"package.json"使用单词"workspace"(复数)来表示包含所有包的目录,这让我很困惑。
  • "workspaceRoot"= nx.json所在的根目录

简而言之:

  • 项目=包
  • 工作区=项目集合

相关问题