概述
Node.js 入门教程
Node.js官方入门教程
Node.js中文网
本文仅用于学习记录,不存在任何商业用途,如侵删
文章目录
- Node.js 入门教程
- 19 package-lock.json 文件
- 19.1 示例
19 package-lock.json 文件
在版本 5 中,npm 引入了 package-lock.json
文件。
那是什么?您可能知道 package.json
文件,它更常见并且存在的时间更长。
该文件旨在跟踪被安装的每个软件包的确切版本,以便产品可以以相同的方式被 100% 复制(即使软件包的维护者更新了软件包)。
这解决了 package.json
一直尚未解决的特殊问题。
在 package.json 中,可以使用 semver 表示法设置要升级到的版本(补丁版本或次版本),例如:
- 如果写入的是
〜0.13.0
,则只更新补丁版本:即0.13.1
可以,但0.14.0
不可以。 - 如果写入的是
^0.13.0
,则要更新补丁版本和次版本:即0.13.1
、0.14.0
、依此类推。 - 如果写入的是
0.13.0
,则始终使用确切的版本。
无需将 node_modules 文件夹(该文件夹通常很大)提交到 Git,当尝试使用 npm install
命令在另一台机器上复制项目时,如果指定了 〜
语法并且软件包发布了补丁版本,则该软件包会被安装。 ^
和次版本也一样。【原来如此】
如果指定确切的版本,例如示例中的
0.13.0
,则不会受到此问题的影响。
可能是你,或者是其他人,会在某处尝试通过运行 npm install
初始化项目。
因此,原始的项目和新初始化的项目实际上是不同的。 即使补丁版本或次版本不应该引入重大的更改,但还是可能引入缺陷。
package-lock.json
会固化当前安装的每个软件包的版本,当运行 npm install
时,npm
会使用这些确切的版本。
这个概念并不新鲜,其他编程语言的软件包管理器(例如 PHP 中的 Composer)使用类似的系统已有多年。
package-lock.json
文件需要被提交到 Git 仓库,以便被其他人获取(如果项目是公开的或有合作者,或者将 Git 作为部署源)。
当运行 npm update
时,package-lock.json
文件中的依赖的版本会被更新。
19.1 示例
在空文件夹中运行 npm install cowsay
时获得的 package-lock.json
文件的示例结构:
安装 cowsay
,其依赖于:
get-stdin
optimist
string-width
strip-eof
这些软件包还需要其他软件包,正如从 require
属性可以看到的:
ansi-regex
is-fullwidth-code-point
minimist
wordwrap
strip-eof
它们会按字母顺序被添加到文件中,每个都有 version
字段、指向软件包位置的 resolved
字段、以及用于校验软件包的 integrity
字符串。
最后
以上就是正直汽车为你收集整理的Node.js 入门教程 19 package-lock.json 文件的全部内容,希望文章能够帮你解决Node.js 入门教程 19 package-lock.json 文件所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复