package-lock.json 文件介绍|学习笔记

简介: 快速学习 package-lock.json 文件介绍

开发者学堂课程【Node.js 入门与实战package-lock.json 文件介绍】学习笔记,与课程紧密联系,让用户快速学习知识

课程地址:https://developer.aliyun.com/learning/course/588/detail/8272


package-lock.json文件介绍

 

一、package-lock.json文件介绍

package-lock.json 并不是每个人都能看到的,如果电脑上 npm 安装的是5.0及以上版本才看得到 package-lock.json 文件,安装3.0以下是看不见的 package-lock.json 文件的。

这个文件是 npm5开始引进的新文件,引进好处是让 npm 安装更快。而这个文件一开始是向别人借鉴的,是像 facebook 人员觉得 npm 用起来太慢了,就自己写了一个 npm 客户端的替代品,叫做 yarn,用了 npm 后就不用再用 yarn,用 yarn 还是 npm 都是通过 npm 仓库安装,只是yarn命令行工具换了而已。

有 yarn.log 文件使 yarn 安装比 npm 客户端安装快很多,后来 npm5也开始出现package-lock.json 提高安装速度。

package-lock.json 文件安装快的原因

新建项目文件夹 test-demo,

再新建文件 app.js文件。

任何一个项目文件都要有 package.json 文件,所以 cd 到 test-demo,通过 npm init -y 创建文件,如,

C: Users \Humble\Desktop\12期\02-HackerNews \02-源代码\课堂代码\test -demo

npm init -y

Wrote to C: Users \Humble\Desktop\12期\02-HackerNews \02-源代码\课堂代码\test -demo\package . json:

{

"name":" test- demo”,

"version": "1.0.0",

description":””,

"main":" app.js",

"scripts": {

"test" :echo \" Error: no test specified\" && exit 1"

},

“keywords": [ ],

"author":””,

“license": "ISC"

}

创建后发现只有 package.json 文件,没有 package-lock.json文件,npm -v 查看版本发现是3.10.10版,是看不见的,需要 nvm list 切换版本数,此处使用6.11.3版本,因为命令行不是管理员窗口打开的,使用切换时要允许进行允许操作,如,

C: Users \Humble\Desktop\12期\02-HackerNews \02-源代码\课堂代码\test -demo (test-demo@1.0.0)

npm -v

3.10.10

C: Users \Humble\Desktop\12期\02-HackerNews \02-源代码\课堂代码\test -demo (test-demo@1.0.0)

nvm list

8.5.0

8.4.0

6.11.3

C: Users \Humble\Desktop\12期\02-HackerNews \02-源代码\课堂代码\test -demo (test-demo@1.0.0)

nvm use 6.11.3

Now using node v6.11.3(64-bit)

此时仍是看不见 package-lock.json 文件的,还要安装再安装第三方包后才能看见。

如果使用的是 npm5,那么第一次安装第三方包时会产生的 package-lock.json文件,如果是 npm5以下版本无论怎么安装第三方包,都不会产生 package-lock.json文件。

接下来 npm install mine 开始安装第三方包,要写上--save,表示把这个依赖项保存到 package.json 里面,如果使用的是 npm5版本可以省略--save,如,

C: Users \Humble\Desktop\12期\02-HackerNews \02-源代码\课堂代码\test -demo (test-demo@1.0.0)

npm install mine

npm notice created…

+ mine@2.0.3

added 1 package in 3.149s

安装成功后出现 package-lock.json 文件,继续 npm install express 安装另一个包。

如果要把 package.json 文件迁移到其他的文件夹,只要执行 npm star 命令package.json 文件中所有的包就可以安装好,安装时如果只要一个 package.json文件安装速度会很慢,因为依赖项里面只告诉了依赖了那个包,版本号,如package.json 里面依赖了 mine 包,版本号2.0.3,要在 npm.js 中搜索这个包,找到对应的版本号,有的话找到下载地址,然后进行下载安装,

如果这个包里面还依赖了其他包,对于依赖的那些包都要在 npm 中搜索,找到对应的下载地址,依次进行安装,

如果有 package-lock.json 就不一样了,package-lock.json 文件里面会保存所有的项目依赖包,子包,每个包名称,版本号,地址,转码全都保存住,存得非常详细,下次执行 npm star 的时候可以非常快的根据这里的信息下载对应版本的包,省去了搜索过程,并且 npm5 里面还有缓存,有时不联网也能下载。

如,

package.json 中内容:

{

name": " test - demo",

"version": "1.0.0",

"description": ””,

”main" : "app.js" ,

'scripts":{

"test": ”echo '” Error: no test specified\" && exit 1”

},

"keywords":[],

”author" :””,

"license": "ISC" ,

”dependencies": {

“express": "^4.15.5",

“mime":”2.0.3”

}}

package-lock.json 中内容:

{

name": "test- demo",

"version": "1.0.0" ,

"lockfileVersion": 1 ,

"requires": true ,

"dependencies": {

"accepts": {

"version": "1.3.4",

"resolved": "https://registry . npmjs . org/accepts/ - /accepts-1.3.4.tgz",

"integrity": "sha1 - hi RnWMfdbSGmR0/ whKRODsBesh8=",

”requires": {

”mime-types": "2.1.17",

"negotiator": "0.6.1"

}},

"array-flatten": {

"version":" 1.1.1" ,

"resolved": "https ://registry . npmjs . org/ array-flatten/ - /array-flatten-1.1.1.tgz",

"integrity": "sha1 - ml9pkF Gx5wc zKPKgCJaL Z0opVdI="

},

相关文章
|
2月前
|
JSON 算法 vr&ar
目标检测笔记(五):查看通过COCOEvaluator生成的coco_instances_results.json文件的详细检测信息,包含AP、AR、MR和DR等
本文介绍了如何使用COCO评估器通过Detectron2库对目标检测模型进行性能评估,生成coco_instances_results.json文件,并利用pycocotools解析该文件以计算AP、AR、MR和DR等关键指标。
131 1
目标检测笔记(五):查看通过COCOEvaluator生成的coco_instances_results.json文件的详细检测信息,包含AP、AR、MR和DR等
|
2月前
|
JSON 数据格式 Python
Python实用记录(十四):python统计某个单词在TXT/JSON文件中出现的次数
这篇文章介绍了一个Python脚本,用于统计TXT或JSON文件中特定单词的出现次数。它包含两个函数,分别处理文本和JSON文件,并通过命令行参数接收文件路径、目标单词和文件格式。文章还提供了代码逻辑的解释和示例用法。
50 0
Python实用记录(十四):python统计某个单词在TXT/JSON文件中出现的次数
|
3月前
|
XML JSON JavaScript
R JSON 文件
JSON: JavaScript Object Notation(JavaScript 对象表示法)。
76 29
|
2月前
|
JSON 数据格式
LangChain-20 Document Loader 文件加载 加载MD DOCX EXCEL PPT PDF HTML JSON 等多种文件格式 后续可通过FAISS向量化 增强检索
LangChain-20 Document Loader 文件加载 加载MD DOCX EXCEL PPT PDF HTML JSON 等多种文件格式 后续可通过FAISS向量化 增强检索
104 2
|
2月前
|
JSON 数据格式 计算机视觉
Opencv实用笔记(一): 获取并绘制JSON标注文件目标区域(可单独保存目标小图)
本文介绍了如何使用OpenCV和Python根据JSON标注文件获取并绘制目标区域,同时可将裁剪的图像单独保存。通过示例代码,展示了如何读取图片路径、解析JSON标注、绘制标注框并保存裁剪图像的过程。此外,还提供了相关的博客链接,供读者进一步学习。
44 0
|
3月前
|
JSON 前端开发 中间件
React读取properties配置文件转化为json对象并使用在url地址中
本文介绍了如何在React项目中读取properties配置文件,将其内容转化为JSON对象,并在请求URL地址时使用这些配置。文章详细说明了异步读取文件、处理字符串转换为JSON对象的过程,并提供了一个封装函数,用于在发起请求前动态生成配置化的URL地址。
91 1
|
3月前
|
JSON 前端开发 JavaScript
java中post请求调用下载文件接口浏览器未弹窗而是返回一堆json,为啥
客户端调接口需要返回另存为弹窗,下载文件,但是遇到的问题是接口调用成功且不报错,浏览器F12查看居然返回一堆json,而没有另存为弹窗; > 正确的效果应该是:接口调用成功且浏览器F12不返回任何json,而是弹窗另存为窗口,直接保存文件即可。
148 2
|
3月前
|
JSON 前端开发 JavaScript
解析JSON文件
解析JSON文件
133 9
|
3月前
|
JSON 前端开发 JavaScript
JSON文件如何读取?
JSON文件如何读取?
150 5
|
3月前
|
JSON 数据格式 Python
6-1|Python如何将json转化为字符串写到文件内 还保留json格式
6-1|Python如何将json转化为字符串写到文件内 还保留json格式