一、什么是包
Node.js 中的第三方模块又叫做包。
二、包的来源
不同于 Node.js 中的内置模块与自定义模块,包是由第三方个人或团队开发出来的,免费供所有人使用。
三、为什么需要包
由于 Node.js 的内置模块仅提供了一些底层的 API,导致在基于内置模块进行项目开发的时,效率很低。
包是基于内置模块封装出来的,提供了更高级、更方便的 API,极大的提高了开发效率。 包和内置模块之间的关系,类似于 jQuery 和 浏览器内置 API 之间的关系。
四、从哪里下载包
国外有一家 IT 公司,叫做 npm, Inc. 这家公司旗下有一个非常著名的网站: https://www.npmjs.com/
它是全球最大的包共享平台,你可以从这个网站上搜索到任何你需要的包
npm, Inc. 公司提供了一个地址为 https://registry.npmjs.org/ 的服务器,来对外共享所有的包,我们可以从这个服务
器上下载自己所需要的包
从 https://www.npmjs.com/ 网站上搜索自己所需要的包
从 https://registry.npmjs.org/ 服务器上下载自己需要的包
五、如何下载包
npm, Inc. 公司提供了一个包管理工具,我们可以使用这个包管理工具,从 https://registry.npmjs.org/ 服务器把需要
的包下载到本地使用
这个包管理工具的名字叫做 Node Package Manager(简称 npm 包管理工具),这个包管理工具随着 Node.js 的安
装包一起被安装到了用户的电脑上。
六、在项目中安装包的命令
在项目中安装指定名称的包,需要运行如下的命令:
完整写法: npm install 包的完整名称
缩写: npm i 包的完整名称
指定包的版本: npm install 包的完整名称@1.1.1
卸载包:(npm uninstall 命令执行成功后,会把卸载的包,自动从 package.json 的 dependencies 中移除掉。)
npm uninstall moment(可以运行 npm uninstall 命令,来卸载指定的包)
七、初次装包会多一些文件
初次装包完成后,在项目文件夹下多一个叫做 node_modules 的文件夹和 package-lock.json 的配置文件。
node_modules 文件夹用来存放所有已安装到项目中的包。require() 导入第三方包时,就是从这个目录中查找并加载包。
package-lock.json 配置文件用来记录 node_modules 目录下的每一个包的下载信息,例如包的名字、版本号、下载地址等。
**(程序员不要手动修改 node_modules 或 package-lock.json 文件中的任何代码,npm 包管理工具会自动维护它们。)**
八、 包管理配置文件
npm 规定,在项目根目录中,必须提供一个叫做 package.json 的包管理配置文件。用来记录与项目有关的一些配置
信息。
例如:
项目的名称、版本号、描述等
项目中都用到了哪些包
哪些包只在开发期间会用到
那些包在开发和部署时都需要用到
快速创建 package.json:
npm 包管理工具提供了一个快捷命令,可以在执行命令时所处的目录中,快速创建 package.json 这个包管理
配置文件:
npm init -y
dependencies 节点:
package.json 文件中,有一个 dependencies 节点,专门用来记录使用 npm install 命令安装了哪些包。
devDependencies 节点:
如果某些包只在项目开发阶段会用到,在项目上线之后不会用到,则建议把这些包记录到 devDependencies 节点中。
与之对应的,如果某些包在开发和项目上线之后都需要用到,则建议把这些包记录到 dependencies 节点中。
可以使用如下的命令,将包记录到 devDependencies 节点中:
npm i 包名 -D 等同于 npm install 包名 --save-dev
九、解决下包速度慢的问题
在使用 npm 下包的时候,默认从国外的 https://registry.npmjs.org/ 服务器进行下载,此时,网络数据的传输需要经
过漫长的海底光缆,因此下包速度会很慢。
可以使用淘宝 NPM 镜像服务器
切换 npm 的下包镜像源
查看当前项目的包镜像源:npm config get registry
将包的镜像源切换为淘宝的镜像源:npm config set registry=https://registry.npm.taobao.org/
十、nrm 介绍
为了更方便的切换下包的镜像源,我们可以安装 nrm 这个小工具,利用 nrm 提供的终端命令,可以快速查看和切换下
包的镜像源
先通过npm安装 nrm (-g 安装为全局可用的工具)
npm i nrm -g
查看所有可用的镜像源
nrm ls
将镜像源切换为 taobao 的镜像
nrm use taobao