概念

1.什么是包?
包 (package) 是一个或多个JS模块的集合,它们共同完成某一类功能,可以简单的认为每一个工程就是一个包

有些包是为了给别人用的,这种包也叫第三方库

2.什么是包管理器?

包管理器是一个管理包的工具,前端常见的包管理器有npm、yarn、cnpm、pnpm等

包管理器具备以下能力:

  • 让开发者可以轻松的下载包
  • 让开发者可以轻松的升级和卸载包
  • 能够自动管理包的依赖

3.什么是cli?

cli是一个命令行工具,它提供一个终端命令,通过该命令可以完成一些功能

node查找包的顺序

1
require("a")

1.查找是否有内置模块a

2.查找当前目录的node_modules中是否有a

3.依次查找上级目录的node-modules中是否有a,直到根目录

配置源

查看源

1
npm config get registry

配置淘宝镜像源

1
npm config set registry https://registry.npm.taobao.org

配置官方源

1
npm config set registry https://registry.npmjs.org/

初始化

1
2
npm init	#初始化工程,帮助生成package.json文件
npm init-y #初始化工程,全部使用默认配置生成package.json文件

package.json

1
2
3
4
5
6
7
{"dependencies":{		//本地普通依赖
"grcode":"^1.4.4"//依赖包grcode,版本1.4.4
},
"devDenpendencies":{ //开发依赖
"webpack":"5.0.0"
}
}

安装

本地安装

1
2
3
npm install 包名
npm install 包名@版本号
#install可以替换为i

全局安装

1
2
3
npm install -g 包名
npm install -g 包名@版本号
#install可以替换为i

若仅作为开发依赖,则添加参数 -D

1
2
3
npm install -D 包名
npm install -D 包名@版本号
#install可以替换为i

若要还原安装

1
2
3
npm install 
npm install -production #仅还原dependencies中的依赖
#install可以替换为i

卸载

本地卸载

1
2
npm uninstall 包名
#uninstall可以替换为un

全局卸载

1
2
npm uninstall -g 包名
#uninstall可以替换为un

查看包信息

查看包所有的版本

1
2
npm view 包名 versions
#view 可以替换为v

npm脚本

什么是 npm 脚本?

npm 允许在package.json文件里面,使用scripts字段定义脚本命令。

1
2
3
4
5
6
7
{
// ...
"scripts": {
"build": "node build.js"
}
}

上面代码是package.json文件的一个片段,里面的scripts字段是一个对象。它的每一个属性,对应一段脚本。比如,build命令对应的脚本是node build.js

命令行下使用npm run命令,就可以执行这段脚本。

1
2
3
$ npm run build
# 等同于执行
$ node build.js

这些定义在package.json里面的脚本,就称为 npm 脚本。它的优点很多。

  • 项目的相关脚本,可以集中在一个地方。
  • 不同项目的脚本命令,只要功能相同,就可以有同样的对外接口。用户不需要知道怎么测试你的项目,只要运行npm run test即可。
  • 可以利用 npm 提供的很多辅助功能。