命令
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-fileyarn.lock
您的yarn.lock文件是自动生成的,应该完全由 Yarn 处理。当您使用 Yarn CLI 添加/升级/删除依赖项时,它会自动更新您的yarn.lock文件。不要直接编辑这个文件,因为它很容易破坏一些东西。
https://classic.yarnpkg.com/en/docs/yarn-locksemver表示法
因此,Github 起草了一个具有指导意义的,统一的版本号表示规则,称为 Semantic Versioning(语义化版本表示)。该规则规定了版本号如何表示,如何增加,如何进行比较,不同的版本号意味着什么。
https://semver.org/lang/zh-CN/
https://github.com/isaacs/node-semver
