• package.json


    package.json 中~和^是什么意思

    • ^意思是将当前库的版本更新到第一个数字,例:"^4.1.0"是库会更新到4.X.X的最新版本,但不会更新到5.X.X版本。

    • ~意思是更新到中间数字的版本,例:"~4.7.4"是库会更新到4.7.X的最新版本,但不会更新到4.8.X版本。

    • 锁定版本:去掉^或~ 写死版本号

    老项目维护

    • 维护很久前的项目,下载依赖后可能会出现各种莫名其妙的报错,可以将出现问题的依赖,写死版本号,重新下载依赖
    • 可以在 package.json 中设置 engines 字段,并为 node 或 npm 设置要求版本或两者
     "engines" : { 
        "npm" : ">=8.0.0 <9.0.0",
        "node" : ">=16.0.0 <17.0.0"
      }
    
    • 1
    • 2
    • 3
    • 4

    要通过 npm 强制执行此操作,您需要创建一个 .npmrc 文件(并将其提交到存储库)并将 engines-strict 选项设置为 true ,如果所需的引擎版本不匹配,这将导致诸如 npm install 之类的 npm 命令失败:

    # .npmrc
    engine-strict=true
    
    • 1
    • 2

    如果没有该文件,每个开发人员都需要在其本地工作区中运行 npm config set engine-strict true 以打开此选项

    eg:

    {
      "name": "my package",
      "engines": {
        "node": ">=12.19.1" // intentionally so big version number
      },
      "scripts": {
        "requirements-check": "babel-node check-version.js",
        "postinstall": "npm run requirements-check"
      }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
  • 相关阅读:
    RT-Thread移植到STM32单片机过程
    【转】2022年“云计算的11类顶级威胁”报告
    Leetcode | 链表
    web前端开发基础---制作表单类页面
    克隆虚拟机 - hyperv
    什么是面向对象
    AI智能客服机器人是什么?对企业重要吗?
    redis优化与一些问题
    Java-Scanner用法
    07-RabbitMQ之SpringCloudStream集成
  • 原文地址:https://blog.csdn.net/u012967849/article/details/134436664