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="

},

相关文章
|
6天前
|
JSON 关系型数据库 数据库
【python】Python将100个PDF文件对应的json文件存储到MySql数据库(源码)【独一无二】
【python】Python将100个PDF文件对应的json文件存储到MySql数据库(源码)【独一无二】
【python】Python将100个PDF文件对应的json文件存储到MySql数据库(源码)【独一无二】
|
6天前
|
JSON 关系型数据库 数据库
【python】Python将100个PDF文件对应的json文件存储到MySql数据库(源码)【独一无二】
【python】Python将100个PDF文件对应的json文件存储到MySql数据库(源码)【独一无二】
|
6天前
|
Web App开发 JSON JavaScript
SAP UI5 应用程序小技巧 - 一键将 JSON 对象导出成本地 json 文件
SAP UI5 应用程序小技巧 - 一键将 JSON 对象导出成本地 json 文件
31 0
|
6天前
|
JSON 数据格式 开发者
什么是 JSON 文件的 Schema
什么是 JSON 文件的 Schema
105 0
|
6天前
|
XML JSON JavaScript
|
6天前
|
JSON 前端开发 数据格式
vue-cli3读取本地json文件
vue-cli3读取本地json文件
60 1
|
6天前
|
编解码 JavaScript 前端开发
TypeScript【第三方声明文件、自定义声明文件、tsconfig.json文件简介、tsconfig.json 文件结构与配置】(六)-全面详解(学习总结---从入门到深化)
TypeScript【第三方声明文件、自定义声明文件、tsconfig.json文件简介、tsconfig.json 文件结构与配置】(六)-全面详解(学习总结---从入门到深化)
75 0
|
5天前
|
JSON 前端开发 JavaScript
jQuery ajax读取本地json文件 三级联动下拉框
jQuery ajax读取本地json文件 三级联动下拉框
|
6天前
|
安全 JavaScript 前端开发
Angular 配置文件 tsconfig.lib.json 里的 strictTemplates 选型
Angular 配置文件 tsconfig.lib.json 里的 strictTemplates 选型
10 0
|
6天前
|
Web App开发 存储 JSON
Chrome插件开发(一)—manifest.json文件介绍
Chrome插件开发(一)—manifest.json文件介绍
11 0

热门文章

最新文章