Node 自带了一个包管理器,以及从文件和网络I/O 到zlib压缩等无所不能的核心 JavaScript 模块,还有一个调试器。
npm 包管理器是这个基础设施中的重要组成部分。
检查Node 是否已经安装成功,可以在命令行中运行 node -v 和 npm -v。
这两个命令分别用来显示你所安装的Node 和 npm 的版本。

命令行工具npm是用npm调用的。
你可以用它来安装npm注册中心里的包,也可以用它来查找和分享你自己的项目,开源的和闭源的都行。注册中心里的每个npm包都会有个页面显示它的自述文件、作者和下载统计信息。
另外,npm还是一家提供 npm服务的公司的名字。这家公司为企业提供商业服务,包括托管私有的npm包
在用npm 安装这些包时,你要决定是装在你的项目中还是装在全局。
要全局安装的包一般是工具,即你要在命令行里运行的程序,比如gulp-cli包。
npm要求 Node项目所在的目录下有一个package.json文件。创建package.json文件的最简单方法是使用npm。
在命令行中输入下面这些命令:


打开package.json 文件,就是一个简单的JSON 格式的项目描述信息。
现在用带有参数 --save 的npm 命令从npm 网站上安装一个包,它会自动更新package.json 文件,
npm i --save express
或者
npm install --save express

这时package.json 文件的dependencies 属性下面新增加了express。

其实现在你可以看到还有一个package-lock.json文件
package.json用于告诉npm 项目运行需要哪些包,但是包的最终安装版本不能够依靠这个文件进行识别,还需要以package-lock.json为准,它的作用就是锁定安装模块的版本号。
还有一个node_modules 文件夹,其中有express

你也可以使用 --global 参数做全局安装,平常来说,我们应该尽可能将包安装在项目里。
对于用在Node JavaScript 代码之外的命名行工具,全局安装更合适【比如ESLint 工具】。