命令

npm list

查看所有已安装的 npm 软件包(包括它们的依赖包)的最新版本

  • npm list -g 也一样,但适用于全局安装的软件包
  • npm list —depth=0 安装并在 package.json 中列出的软件包

    npm update

  • 更新指定依赖安装包【不一定包括 major 位的更新,有时需要在 package.json 手动更改依赖包相应版本号在更新】

    npm view | info packageName version

    列出软件包所有的以前的版本

    关于内容含义

  • version 表明了当前的版本。

  • name 设置了应用程序/软件包的名称。
  • description 是应用程序/软件包的简短描述。
  • main 设置了应用程序的入口点。
  • private 如果设置为 true,则可以防止应用程序/软件包被意外地发布到 npm。
  • scripts 定义了一组可以运行的 node 脚本。
  • dependencies 设置了作为依赖安装的 npm 软件包的列表。
  • devDependencies 设置了作为开发依赖安装的 npm 软件包的列表。
  • engines 设置了此软件包/应用程序在哪个版本的 Node.js 上运行。
  • browserslist 用于告知要支持哪些浏览器(及其版本)。
  • main用于定义 Node.js 等程序使用的代码的入口点。如果未指定,它将默认为index.js.
  • repository是另一个可选但推荐的字段,可帮助您的包的用户找到源代码以提供回馈。
  • author是包的创建者或维护者。它遵循格式 “Your Name you@example.com (https://your-website.com)”
  • license是您的软件包的已发布法律条款,以及您的软件包中允许使用的代码是什么。
  • keywords是其他开发人员可以搜索以查找您的包或相关包的术语列表。
  • homepage是一个 url,用于将用户指向一个网站,该网站通过介绍、文档和指向其他资源的链接通知他们有关包的信息。
  • bugs是一个 url,如果他们发现你的包有问题,你的包的用户会指向他们。
  • contributors 是包的贡献者列表。如果您的项目中涉及其他人,您可以在此处指定他们。
  • files是发布和安装时应包含在包中的文件列表。如果未指定 Yarn 将包含每个文件。
  • bin是 Yarn 在安装包时为包创建的 cli 命令(二进制文件)的映射。
  • optionalDependencies 可选依赖项可以与您的包一起使用,但不是必需的。如果未找到可选包,安装仍会继续。
  • engines 引擎指定必须与您的包一起使用的客户端版本
  • gitHooks git生命周期钩子 一把在提交前做代码校验或者格式化代码 如 pre-commit pre-push 需要安装yorkie依赖 — no-verify
  • husky - hooks 和 gitHooks 一致 搭配 lint-staged 可以只检查 staged 文件,提高效率
  • lint-staged 对暂存的 git 文件运行 linter

https://classic.yarnpkg.com/en/docs/package-json

关于版本号

项目对应依赖包一般保存在 package.json 文件中,相对应版本号的形式为 mojor.minor.patch
major 表示非兼容的重大 API 改变(主要的)
minor 表示向后兼容的功能性改变(次要的)
patch 表示向后兼容的 bug 修正(修补的)

    • 匹配最新的 major 版本依赖包
  • ^ 匹配最新的 minor 版本依赖包,eg: 1.1.0 可以更新匹配所有 1.x.x 的包,不会更新匹配 2.x.x
  • ~ 匹配最新的 patch 版本依赖包,eg: 1.1.0 可以更新匹配所有 1.1.x 的包,不会更新匹配 1.2.x
  • 没有前缀表示固定版本号, 版本不会更新匹配任何其他版本。【需要手动修改 package.json 包版本】

    关于文件

    package-lock.json

    该文件旨在跟踪被安装的每个软件包的确切版本,以便产品可以以相同的方式被 100% 复制(即使软件包的维护者更新了软件包)。
    这解决了 package.json 一直尚未解决的特殊问题。 在 package.json 中,可以使用 semver 表示法设置要升级到的版本(补丁版本或次版本)
    http://nodejs.cn/learn/the-package-lock-json-file

    yarn.lock

    您的yarn.lock文件是自动生成的,应该完全由 Yarn 处理。当您使用 Yarn CLI 添加/升级/删除依赖项时,它会自动更新您的yarn.lock文件。不要直接编辑这个文件,因为它很容易破坏一些东西。
    https://classic.yarnpkg.com/en/docs/yarn-lock

    semver表示法

    因此,Github 起草了一个具有指导意义的,统一的版本号表示规则,称为 Semantic Versioning(语义化版本表示)。该规则规定了版本号如何表示,如何增加,如何进行比较,不同的版本号意味着什么。
    https://semver.org/lang/zh-CN/
    https://github.com/isaacs/node-semver