代码之家  ›  专栏  ›  技术社区  ›  ThomasReggi

安装my dependencies的dev dependencies

  •  1
  • ThomasReggi  · 技术社区  · 7 年前

    我有一个monorepo,我有一个 /packages 包含许多包的文件夹。

    我可以用 npm i ./packages npm i 如果已经使用文件指针指定了它们。

    看起来像这样:

      "dependencies": {
        "@reggi/command": "file:packages/command",
        "@reggi/dep-merge": "file:packages/dep-merge",
        "@reggi/dep-merge-cli": "file:packages/dep-merge-cli",
        "@reggi/dep-pointer": "file:packages/dep-pointer"
      }
    

    问题是,如果我安装了这些软件包,就不会得到开发依赖项。

    我真正想要的是安装 devDependencies 这些依赖关系的一部分。

    lerna 一个率先使用monorepos的流行工具建议您添加所有 依赖性 对于根包中的这些包。这样做的问题是,它消除了两个包依赖于给定开发人员依赖项的不同版本的能力。

    我所做的是创建一个脚本,将所有 依赖性 进入 dependencies preinstall 然后撤消更改。这很管用,但有时可能有点不靠谱,尤其是在向客户解释这一切时 shrinkwrap .

    如果我能 npm i --allDevDepsFromDeps 它会安装我所有的依赖项dev dependentials。

    我还缺少其他解决方案吗?

    1 回复  |  直到 7 年前
        1
  •  0
  •   HRK44    7 年前

    我看不出你想在那里实现什么,这些设计不是用来。。。发展

    如果你想让不同的包有不同的版本,不要把它们放在根目录下,而是放在每个包中。

    问题是,如果我安装了这些软件包,就不会得到开发依赖项。

    您应该将这些包视为“生产包”/“捆绑包”,在这种情况下,您不需要依赖于开发人员。

    例如,当您在@pkg/A上工作时,它将有自己的devDep,但是如果您在依赖@pkg/A的@pkg/B上工作,@pkg/A应该是生产/捆绑版本(没有devDep)。

    也许你应该看看 bundledDependencies peerDependencies ,这可能对你有帮助。

    推荐文章