我们有一个现有的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
文件?