第三方包的使用
什么是包?
第三方模块就是包,使用包可以提高开发效率;
在 npm官网 搜索包;
包如何下载?
使用npm命令下载,只要安装了node,就可以直接使用npm命令 npm i 包名
(i是install的简写)
打开cmd窗口,输入 npm -v
可以查看npm的版本
设置taobao镜像,可以提高包的下载速度(因为npm是外网服务器)npm config set registry=https://registry.npm.taobao.org/
下载好的包可以通过 require('模块名')
引入
node_modules 文件夹就是保存第三方包的文件
package-lock.json 记录第三方包的信息
包管理配置文件
package.json
作用:1.记录项目的信息:项目名称、版本、作者、描述、协议…
2.记录当前项目中包的信息:名称、版本、开发或核心依赖
package.json文件中的两个重要属性:
dependencies
: 核心依赖,代码功能依赖;
devDependencies
: 开发依赖,项目构建依赖(也就是项目写好之后就不需要再使用的包)
package-lock.json:记录项目包的详细信息:名称、版本、下载地址、依赖关系…
二者区别:package,json和package-lock.json都能记录包的信息,但是package-lock.json能锁定确切的下载地址,保证项目运行稳定,所以留下package-lock.json是非常有必要的(当然也可以不要、会有一定风险)
npm命令管理包
包的分类:
项目包:核心依赖、开发依赖;
全局包;
安装包:
安装核心依赖:npm i 包名;
安装开发依赖:npm i 包名 -D;
安装所有依赖:npm i;
安装所有核心依赖:npm i --production;
安装全局包:npm i 包名 -g;
卸载包:npm uninstall 包名
模块加载
模块加载机制(优先从缓存中加载,同一个包被require多次,只会加载一次)
内置模块加载优先级最高;
自定义模块加载机制:
1.必须指定以 ./ 或 …/ 开头的路径标识符,否则语法或误认为是内置模块或第三方模块;
2.如果省略扩展名,则按顺序尝试加载文件:
–1.没有扩展名的文件;
–2.js文件;
–3.json文件;
–4.node文件;
–5.文件夹;
–6.失败;
当文件夹作为模块是的加载机制:
–1.在package.json中查找main属性指定的入口文件作为加载入口;
–2.如果找不到入口文件,默认加载index.js;
第三方模块加载机制:
1.当前模块的父目录开始,尝试从 /node_modules
文件夹中加载第三方模块;
2.如果没有找到对应的第三方模块,则移动到再上一层目录中,知道文件系统的根目录;