一、包
1、为什么需要包
由于Node.js的内置模块仅提供了一些底层API,导致在基于内置模块进行项目开发时效率很低,包是基于内置模块封装出来的,提供了更高级、更方便的API,极大的提高了开发效率。
包和内置模块之间的关系,类似于jQuery和浏览器内置API之间的关系
2、从哪里下载包
查询包:https://www.npmjs.com/
下载包: https://registry.npmjs.org/
二、使用npm安装第三方包
npm install 包完整名称
npm i 包完整名称
例如:
npm i moment@2.22.2
1、初次安装包后多了哪些文件
初次装包完成后,在项目文件夹下多一个叫做node_modules的文件夹和package-lock.json的配置文件。
其中:
- node_modules文件夹是用来存放所有已安装到项目中的包。require()导入第三方包时,就是从这个目录中查找并加载包。
- package-lock.json配置文件是用来记录目录下每一个包的下载信息,例如包的名字,版本号,下载地址等。
在项目根目录中创建一个叫package-lock.json的配置文件,即可以用来记录项目中安装的软件包,从而方便剔除node_modules目录之后在团队成员之间共享项目的源代码。
注意:今后在项目开发中,一定要把node_modules文件夹添加到.gitignore忽略文件中。
2、包管理配置文件
如果某些包只在项目开发阶段会用到,在项目上线之后不会用到,建议把这些包安装到devDependencies节点
如果这些包在开发和项目上线之后都需要用,则建议把这些包记录到dependencies节点中。
3、npm安装包命令
- 开发人员下载包时使用:
#开发依赖包
npm i 包名 -D
//完整写法:
npm install 包名 --save-dev
#生产依赖
npm install -save 包名
或
npm install 包名
对应的包会记录到package-lock.json中的对应devDependencies或dependencies中。
- 项目部署到生成环境后,或测试人员下载时:
#只安装生成依赖包
npm i --production
- 全局包:
只有工具性质的包才有必要使用,建议根据官方问题提示确定是否需要全局安装。
npm i 包名 -g
三、npm下载包慢
默认情况下,使用国外npm包源下包慢
//查看当前的下包镜像源
npm config get registry
//切换镜像源
npm config set registry=https://registry.npm.taobao.org
四、nrm
为了更加方便的切换下包镜像源,我们可以安装nrm这个小工具,利用nrm提供的终端命令,快速查看和切换镜像源
#全局安装nrm
npm i nrm -g
#查看所有可用镜像源
nrm ls
#切换镜像源
nrm use taobao