本文主要讲解node中包的含义,如何进行下载,package.json和package-lock.json文件的区别
目录
一、node包的定义
Node.js中第三方模块也叫做“包”,包基于底层API实现,使用包可以提高开发效率。包一般是开源的,免费的,来自世界各地的程序员贡献的。
Node.js中包括三种模块,分别是:内置模块,第三方模块和自定义模块。这三种模块的关系:
包之于Node.js的内置模块,可以类比于jQuery库之于浏览器原始的API
二、包的下载与安装
1、记住一个查找网站:https://www.npmjs.com/
网站由一个npm inc公司提供的,上面收录了最多最全的包的资源,方便进行查找,并查看包功能和使用说明
2、记住一句下载命令:npm install 包名
在终端执行上述命令,即可从registry.npmjs.org服务器上下载对应的包到项目的node_modules
文件夹下,同时生成package-lock.json文件,记录安装包的版本和对应的路径。
其中npm 是Node.js内置的模块,下载Node.js时就已经下载安装了。npm是包管理系统(node package manager)的缩写,是个有效的包管理工具。
npm install moment //安装项目包momnet
npm i moment // 安装项目包moment, i 是install 缩写
npm install nrm -g // 安装全局包,包被装到系统node的node_modules文件夹下,一般只有工具类型包需要全局
npm install -D webpack // 安装项目开发包,仅安装到生产环境中,部署到线上就不需要了,看包的说明书,是否有-D
3、记住一个地址设置:nrm use taobao
npm默认下载包的地址在国外,需要通过海底光纤传输,下载速度慢,所以推荐使用淘宝径向地址。
npm install nrm -g // 全局安装nrm注册表管理小工具
nrm ls //显示有哪些可以使用的选项
nrm use taobao // 使用国内的淘宝镜像
4、记住一个版本号规则:@2.29.1
要指定下载的包的版本需要输入npm install moment@2.29.1
其中2.29.1
是包的版本号码,有三位点分十进制数组成。
大版本:底层发生改变
功能版本:新增了某些功能
修复bug:没有增加功能,只是修复了某个功能的bug
注意:前面的版本高增加1,后面自动清零
三、package.json与package-lock.json的区别
package.json是执行语句npm init
生成的,记录了项目的名字,版本号,描述和开发依赖包,核心依赖包,可以手动修改
package-lock.json是安装包时自动生成的,记录了安装包的名字、下载地址等信息。一般不手动修改。
由于项目中node_modules文件较大,多人合作时候一般不将这个文件共享到giythub,只要共享package.json和package-lock.json,然后下载下来执行npm install
命令,就可以依照dependency来安装各种依赖包。
四、包的自我修养
作为一个node_modules中的一个包,它有package.json文件,里面记录了包名、版本号以及main,指示着包的入口文件,也就是require的返回值对应的文件。