如何为现有的Lerna mono-repo生成per-package package-lock.json

时间:2018-06-11 20:28:40

标签: npm lerna monorepo package-lock.json

我们有一个现有的Lerna mono-repo,结构如下:

/
  /packages
    /package1
    /package2
    /package3
    ...

我们目前在项目中使用Yarn,实际上只有一个顶级yarn.lock文件,没有每个包yarn.lock,因为我们从未使用过工作区。

我们正在尝试切换到npm,并希望为mono-repo中的每个包生成package-lock.json文件,而不仅仅是顶层。我们应该怎么做?运行npm run lerna bootstrap --hoist会创建顶级锁定文件,但不包含任何"dev": true标记,并且不包含任何本地包。我能做的最好的事情就是做npm run lerna add somePackage --scope=package1,即使somePackage中已经存在package,也会导致为{1}}中的每个包生成一个package-lock.json文件除package1之外的单一回购。此外,生成的package-lock.json文件没有任何dev依赖项。

此外,我无法进入每个程序包并运行npm install因为npm不知道我们在mono-repo中拥有的许多其他本地程序包所依赖的本地程序包。很奇怪,即使在通过package-lock.json从npm生成的lerna add文件中,这些文件也不包含对本地包的任何引用,只包括外部包。

那么:如何为mono-repo中包含devDependencies的每个包生成一个package-lock.json文件?

0 个答案:

没有答案