我们有一个现有的Lerna mono-repo,其结构如下:
/
/packages
/package1
/package2
/package3
...
我们目前在项目中使用 Yarn,实际上只有一个顶级yarn.lock
文件,没有每个包yarn.lock
,因为我们从未使用过 Workspaces。
我们正在尝试切换到 npm,并希望package-lock.json
为 mono-repo 中的每个包生成一个文件,而不仅仅是顶层。我们应该怎么做?运行npm run lerna bootstrap --hoist
会创建一个顶级锁定文件,但不包含任何"dev": true
标签,也不包含任何本地包。我能做的最好的事情是做npm run lerna add somePackage --scope=package1
,即使somePackage
已经存在于 中package
,也会导致为 mono repo 中的每个包生成一个package-lock.json
文件,除了package1
. 此外,生成的package-lock.json
文件没有任何开发依赖项。
此外,我无法进入每个包并运行npm install
,因为npm
不了解我们在 mono-repo 中其他本地包所依赖的许多本地包。奇怪的是,即使在package-lock.json
npm 通过 生成的文件中lerna add
,这些文件也不包含对本地包的任何引用,只包含对外部包的引用。
那么:如何为package-lock.json
mono-repo 中还包含 devDependencies 的每个包生成一个文件?