zoukankan      html  css  js  c++  java
  • yarn在package.json的一些字段

    强制孙依赖的版本

    今天博主遇到一个棘手的问题,@vue/cli-service 依赖了一个包 portfiner@^1.0.20,但是 2 天前,这个包更新到了1.0.22,带来了一些问题。

    博主第一反应就是想 yarn add portfinder@1.0.21,看看yarn可不可以复用这个版本。

    但是结果却是 1.0.21 和 1.0.22 都装上了,而且 @vue/cli-service 还是依旧用的是 1.0.22 这个问题版本。

    一怒之下,博主到yarn的文档随便翻了翻,结果还真有一个东西: “resolutions”:

    在 package.json 定义 resolutions

    {
      "name": "project",
      "version": "1.0.0",
      "dependencies": {
        "left-pad": "1.0.0",
        "c": "file:../c-1",
        "d2": "file:../d2-1"
      },
      "resolutions": {
        "d2/left-pad": "1.1.1"
      }
    }

    这样的结果是,这个项目下,所有的 d2/left-pad@1.1.1 范围内符合的,都指向这一版。

    monorepo的多重依赖 --- workspace

    {
        "private": true,
        "name": "project",
        "version": "1.0.0",
        "workspaces": [
            "apps/*",
            "packages/*"
        ]
    }

    上面这里private true,会组织npm发包

    我们安装依赖,只需要在项目根目录yarn一下就可以装项目里面所有依赖(包括子项目的依赖)

    启动子项目:yarn workspace <name> <script>

    推荐阅读:https://zhuanlan.zhihu.com/p/71385053

  • 相关阅读:
    unordered_set
    树的所有实现
    各类算法模板
    单链表全部实现(绝对史上最完整 附例题)
    求最长回文子串
    无重复的最长子串
    秋叶集
    1451. 重新排列句子中的单词
    152. 乘积最大子数组
    JVM总结的部分内容
  • 原文地址:https://www.cnblogs.com/amiezhang/p/11379747.html
Copyright © 2011-2022 走看看