fal*_*con 5 javascript monorepo
在 monorepo 中,如果您在一个包中具有依赖项,您是否可以在另一个包中使用该依赖项而不将其添加到该包中?为了更清楚,请检查下面的布局。
Project
|-packages
|- packageA
|- package.json (Here let say I have lodash dependency)
|- index.js
|- packageB
|-package.json (I haven't added lodash here.)
|- index.js
Run Code Online (Sandbox Code Playgroud)
那么,我可以在 packageB 的 index.js 中导入 lodash 还是必须在那里添加它?
如果使用lodash,您应该在.log 文件packageB中列出lodash 。如果你不这样做,糟糕的事情可能会发生。例如,考虑以下情况:package.jsonpackageB
packageA。就您而言,您提到将packageAlodash 列为依赖项。packageA但是,如果您在不再需要 lodash 的地方进行了重构,您可能会认为它未被使用而将其删除。如果packageB依赖于packageA安装 lodash,则会packageB由于缺少依赖项而中断。packageB安装时没有packageA. 如果不知道您的软件包包含什么,就很难确定,但现在或将来您(或其他人)可能可以在packageB不安装packageA. 然后你会遇到同样的情况,lodash 没有安装并且packageB会崩溃。packageA更新了 lodash 的新主要版本。如果packageB不再与 lodash 的新主要版本兼容,它可能会崩溃。如果指定它自己对 lodash 的依赖,这不会成为问题packageB,因为您可以根据最好的情况一起或单独更新它们。可能会发生其他情况,这些只是几个例子。
请注意,您可以将 lodash 指定为两者中的对等依赖项packageA,并packageB让使用应用程序安装 lodash,这样您就不必在两个包中都安装它,但这并不能真正简化您的 monorepo 或使用应用程序中的事情。
| 归档时间: |
|
| 查看次数: |
2985 次 |
| 最近记录: |