代码之家  ›  专栏  ›  技术社区  ›  corolok

中同一程序包的多个版本纱线.锁紧文件

  •  0
  • corolok  · 技术社区  · 5 年前

    我在纱线.锁紧,例如:

    angular@1.6:
      version "1.6.10"
      resolved "https://registry.yarnpkg.com/angular/-/angular-1.6.10.tgz#eed3080a34d29d0f681ff119b18ce294e3f74826"
      integrity sha512-PCZ5/hVdvPQiYyH0VwsPjrErPHRcITnaXxhksceOXgtJeesKHLA7KDu4X/yvcAi+1zdGgGF+9pDxkJvghXI9Wg==
    
    angular@>=1.4.0, angular@^1.0.8:
      version "1.7.7"
      resolved "https://registry.yarnpkg.com/angular/-/angular-1.7.7.tgz#26bd87693deadcbd5944610a7a0463fc79a18803"
      integrity sha512-MH3JEGd8y/EkNCKJ8EV6Ch0j9X0rZTta/QVIDpBWaIdfh85/e5KO8+ZKgvWIb02MQuiS20pDFmMFlv4ZaLcLWg==
    
    angular@~1.2.0:
      version "1.2.32"
      resolved "https://registry.yarnpkg.com/angular/-/angular-1.2.32.tgz#df52625a5167919931418dda3a9208b9f5fa3db4"
      integrity sha1-31JiWlFnkZkxQY3aOpIIufX6PbQ=
    

    这是否意味着最终的捆绑包包含了所有这些内容,否则webpack如何知道要选择哪个版本?社区中处理这一问题的最佳做法是什么?我知道 --flat 但有数千个包裹,我需要一段时间才能为每一个选择一个。

    0 回复  |  直到 5 年前
        1
  •  1
  •   Stav Alfi    3 年前

    yarn why <package-name> .

    看看是否可以升级(或降级)某些包,以确保包中的所有依赖项都使用相同版本的angular。

    例如: yarn why execa :

    yarn why v1.22.5
    [1/4] 🤔  Why do we have the module "execa"...?
    [2/4] 🚚  Initialising dependency graph...
    [3/4] 🔍  Finding dependency...
    [4/4] 🚡  Calculating file sizes...
    => Found "execa@4.0.3"
    info Has been hoisted to "execa"
    info Reasons this module exists
       - "workspace-aggregator-c3b3be41-6d00-4635-98a6-d5373b215152" depends on it
       - Specified in "devDependencies"
       - Hoisted from "_project_#pretty-quick#execa"
       - Hoisted from "_project_#@tahini#nc#execa"
       - Hoisted from "_project_#execa"
       - Hoisted from "_project_#jest#@jest#core#jest-changed-files#execa"
    info Disk size without dependencies: "136KB"
    info Disk size with unique dependencies: "520KB"
    info Disk size with transitive dependencies: "736KB"
    info Number of shared dependencies: 19
    => Found "lint-staged#execa@2.1.0"
    info This module exists because "_project_#lint-staged" depends on it.
    info Disk size without dependencies: "76KB"
    info Disk size with unique dependencies: "400KB"
    info Disk size with transitive dependencies: "616KB"
    info Number of shared dependencies: 19
    => Found "sane#execa@1.0.0"
    info This module exists because "_project_#jest-haste-map#sane" depends on it.
    info Disk size without dependencies: "40KB"
    info Disk size with unique dependencies: "328KB"
    info Disk size with transitive dependencies: "524KB"
    info Number of shared dependencies: 16
    => Found "create-folder-structure#execa@2.1.0"
    info Reasons this module exists
       - "_project_#create-folder-structure#pretty-quick" depends on it
       - Hoisted from "_project_#create-folder-structure#pretty-quick#execa"
    info Disk size without dependencies: "76KB"
    info Disk size with unique dependencies: "400KB"
    info Disk size with transitive dependencies: "616KB"
    info Number of shared dependencies: 19
    => Found "term-size#execa@0.7.0"
    info This module exists because "_project_#nodemon#update-notifier#boxen#term-size" depends on it.
    info Disk size without dependencies: "36KB"
    info Disk size with unique dependencies: "324KB"
    info Disk size with transitive dependencies: "520KB"
    info Number of shared dependencies: 16
    

    推荐文章