【发布时间】:2018-08-08 19:55:42
【问题描述】:
我有一个正在开发的项目的 lerna 存储库。它有几个相互依赖的包。为了使开发更容易,没有发布任何包,并且它们依赖于彼此的最新版本。
目录树
foo/
packages/
core/
package.json
errors/
package.json
foo/packages/core/package.json
{
...
dependencies: {
"@foo/errors": "*"
}
}
我有另一个项目bar,我用它来测试 lerna 项目。目前我正在使用本地 file: 依赖项链接到它的依赖项:
bar/package.json
{
...
dependencies: {
"@foo/core": "../foo/packages/core"
}
}
这种方法给我带来了麻烦。
- 使用 npm,我经常遇到ENOENT .DELETE errors。删除我的 package-lock.json 并重新安装让我失去了很多年。
- 使用纱线,我无法在
bar中使用yarn install。 Yarn 遵循file:对@foo/core的依赖,发现它依赖于@foo/errors并且不知道lerna 的符号链接。这导致它失败,告诉我它找不到@foo/errors。
这使得为这个项目编写实际代码成为次要的依赖管理。
我怎样才能使这个(我觉得很简单?)项目结构有效?此时打开 lerna/yarn/npm/pnpm/shell scripts/MS DOS。
【问题讨论】: