第三节: npm 包管理工具

NPM(Node Package Manager) Node包(模块)管理工具,借助NPM,可以帮助用户快速安装和管理依赖包,这样我们就可以很方便的使用来自全球Node开发者提供的包

那么什么是NPM以及包, 包跟模块又有什么区别?


1. 什么是包

所谓的包就是CommonJS的包规范, 在模块的基础上进一步组织JavaScript代码的方式
包模块示意图:


包模块示意图.jpg

CommonJS的包规范定义包是由包结构和包描述文件两部分组成. 前者用于组织包中的各种文件, 后者则用于描述包的相关信息.以供外部读取分析

CommonJS模块的基本单位 就是单个的JS文件,但复杂的功能往往由多个子模块组成,为了便于管理和使用,我们可以把由多个子模块组成的大模块成为包,并把所有的子模块放在同一个目录里

组成一个包的所有子模块中需要一个入口模块,入口模块的导出对象被称为包的导出对象

默认包中的入口模块为index.js,也可以在包中新建一个package.json 包描述文件,设置main属性值为模块入口

简单理解如下:

包 === 项目
模块 === 文件


2. 包结构

package.jsonnode.js项目的包描述文件,以JSON格式的形式描述文件


2.1 如果创建package.json
npm init

自动快速初始化项目(全部以yes生成package.json)

npm init -y


2.2 package.json的常用属性
  1. name 项目名称
  2. version 版本号
  3. description 项目描述
  4. main 主入口文件
  5. dependencies 依赖描述
  6. devDependencies 开发时依赖(导出不依赖)
  7. scripts 脚本命令(可以使用npm命令进行执行)
  8. license 开源协议
  9. keyword 关键字


3. NPM

CommonJS包规范是理论, NPM是其中的一种实践.借助NPM,可以帮助用户快速安装管理依赖包.

3.1 安装包
  1. 安装包(安装最新版)
// npm install '<包的名称>'
npm install express 

可以缩写

     npm i express 

效果同上

执行上面的命令, npm会在当前目录下创建node_modules目录, 然后在node_modules目录下创建express目录, 接着将包解压到这个目录

安装成功后,就可以通过require()引入该包

const express = require('express')


  1. 指定安装包的版本
  npm i '<包的名称>@版本号'
  npm i [email protected]


  1. 全局安装包
  npm i '包的名称' -g

如果包中含有命令行工具, 那么需要使用-g参数,进行全局模式安装包.

查看全局安装的位置

// 查看全局包的路径
npm root -g

在c盘,用户下的 AppData目录下 的Roaming下的npm下的node_modules文件夹里


  1. 将安装的包写入依赖
  npm i '包的名称' --save

将安装包写入package.json依赖列表

  1. 将安装的包写入开发时依赖
   npm i '包的名称' --save-dev


3.2 npm其他命令
  1. 搜索包
   npm search '包的名称'
  1. 查看包的信息
  npm view '包的名称'
  1. 卸载包
npm uninstall '包的名称'
  1. 更新包
npm update '包的名称'


4. cnpm

npm就是一个下载工具,默认就是取github上去下载,下载会比较忙,所以淘宝做了镜像.10分保持跟官网一次同步,只能下载不能上传

npm官网:www.npmjs.com

淘宝镜像: http://npm.taobao.org/


你可能感兴趣的:(第三节: npm 包管理工具)