什么是npm?
node package manger(node 的包管理器)
- 模块:js文件,内容遵守commonjs规范
- 包:把多个模块组织在一个目录中,该目录中有package.json(包的描述文件)
npm的作用是什么?
组织和管理 node的包
- 下载
- 安装
- 卸载
- 查看
- 使用
- 更新
npm常用命令
- npm -v
- npm init
- npm install 根据package.json的依赖去安装包
- npm install 包 --save-dev/-D --save/-S -g
- npm config get/set registry 查看/设置当前的镜像源
- npm root -g 查看全局包的安装位置
- npm config get/set prefix 查看/设置全局包的安装位置
安装
npm install 包名
安装基本流程
- 去对应的网站(镜像源)进行查询
- 下载对应包的压缩包到缓存目录 可以通过 npm config get cache查看缓存目录
- 解压到对应的目录
查看当前使用的镜像源
npm config get registry
设置当前使用的镜像源
npm config set registry 镜像源地址
本地安装
- 开发环境下的安装
npm install 包名 --save-dev
npm install 包名 -D
- 生产环境下的安装
npm install 包名 --save
npm install 包名 -S
全局安装
npm install 包名 -g
会把包装到一个指定的目录
npm root -g
NODE_PATH的配置和作用
作用:指定一个路径,供require查找使用。
根据依赖安装
npm install
作用:根据package.json中的 依赖去安装对应的包。
镜像源
官方镜像源
https://registry.npmjs.org/
淘宝镜像源
https://registry.npm.taobao.org/
commonjs中require的查找机制
-
接收一个路径作为参数
-
接收一个包名
- 去当前文件夹下查找node_modules
- 如果找见了,去就该文件夹下找名字为包名的文件夹
- 接着在包名文件夹下找 index.js
- 找package.json 中的main属性
- 引用main的路径
- 如果当前目录没有,就依次向上级寻找
- 如果依次查找到磁盘的根目录都找不见,那表名在该磁盘下没有这个包
- 如果在本地磁盘没找见,就去找NODE_PATH中的路径