繁体   English   中英

基于 NX 包的回购协议:projectRoot 与 workspaceRoot?

[英]NX package-based repo: projectRoot vs workspaceRoot?

如果我有一个带有 NX 的基于包的 monorepo,哪个目录是projectRoot ,哪个是workspaceRoot

从文档( https://nx.dev/reference/project-configuration ):

{projectRoot} 和 {workspaceRoot}

{projectRoot} 是一个关键字,由当前项目根目录的路径替换。 {workspaceRoot} 是一个关键字,由工作区根目录的路径替换。

这是非常明显和无益的解释。 我想知道哪个是哪个,因为我有这个目录结构:

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

因为package.json提到我的packages/*作为“工作区”,我的猜测是每个 package 都是一个工作区,因此workspaceRoot必须分别引用每个 package,而projectRoot必须引用我的nx.json配置的顶级目录。 但我完全不知道如何确认这一点。 我正在试验缓存(设置各种inputs ,看它是命中还是未命中),但绝对没有任何效果。

澄清一下我的困惑:“工作空间根目录”是包含所有工作空间(即包)的目录,还是表示“单个工作空间(即包)的根目录”。 (这里我假设“workspace”==“package”,这可能不是真的。)

基于阅读https://nx.dev/concepts/mental-model ,这里是我的定义:

  • "project" = each package,例如一个库或一个应用程序,它指的是packages/中的每个单独的子目录
  • “projectRoot”=每个人的根 package。在问题的示例中,它将是packages/package1packages/package2
  • “工作区”=所有包/项目的集合。 请注意,“package.json”使用单词“workspaces”(复数)来指代包含所有包的目录,这让我感到困惑。
  • "workspaceRoot" = nx.json所在的根目录

简而言之:

  • 项目 = package
  • 工作空间 = 项目集合

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM