我制作了这个示例目录示例:
packages/
package1/
-- this has lodash as dependencies
package2/
-- this has package1 as dependencies using file:///path/to/packages/package1
Run Code Online (Sandbox Code Playgroud)
当我在我的目录层次结构npm install中执行操作时package2
package2/
node_modules/
package1/
node_modules/
lodash/
Run Code Online (Sandbox Code Playgroud)
如果我运行npm dedupe后,目录将变为:
package2/
node_modules/
package1/
lodash/
Run Code Online (Sandbox Code Playgroud)
另一方面,如果我这样做yarn install,那么默认情况下我会得到扁平目录。我怎样才能使两者的npm install行为yarn install相同?npm dedupe速度非常慢并且在实际应用中不实用。
这不仅仅是一个方便的问题 - 我目前有一个script包,我想将常见的依赖项移入其中。但是,如果结构没有展平,那么如果我require('some-package')在这个scripts存储库中执行此操作,我会发现找不到模块,因为包是嵌套的。
使用npm install --prefer-dedupe
它并不总是会扁平化依赖关系,扁平化取决于依赖关系树的当前状态。
这是有关它的文档 - > https://docs.npmjs.com/cli/v8/commands/npm-dedupe
| 归档时间: |
|
| 查看次数: |
1518 次 |
| 最近记录: |