Node的社区是非常热闹的,众多的优秀开发这提供了很多功能模块,供我们选择使用,那么如何管理和使用这些第三方作者开发功能呢? 此时node开发者主导了一个社区来管理这些功能,这就是NPM
NPM(Node Package Manager) Node包(模块)管理工具,借助NPM,可以帮助用户快速安装和管理依赖包,这样我们就可以很方便的使用来自全球Node开发者提供的包
这里有提到了一个概念包, 那么什么包? 包和模块有和不同?
1. 什么是包
JS模块的基本单位 就是单个的JS文件,但复杂的模块往往由多个子模块组成,为了便于管理和使用,我们可以把由多个子模块组成的大模块成为包,并把所有的子模块放在同一个目录里
组成一个包的所有子模块中需要一个入口模块,入口模块的导出对象被称为包的导出对象
默认包中的入口模块为index.js,也可以在包中新建一个package.json 包描述文件,设置main属性值为模块入口
简单理解如下:
包 === 项目
模块 === 文件
2. 什么是package.json
package.json
是node.js
项目的包描述文件,以JSON格式的形式描述文件
2.1 如果创建package.json
npm init
自动快速初始化项目(全部以yes生成package.json)
npm init -y
2.2 package.json
的常用属性
- name 项目名称
- version 版本号
- description 项目描述
- main 主入口文件
- dependencies 依赖描述
- devDependencies 开发时依赖(导出不依赖)
- scripts 脚本命令(可以使用npm命令进行执行)
- license 开源协议
- keyword 关键字
3. npm 常用命令
3.1 安装包
-
安装包(安装最新版)
npm install '<包的名称>'
可以缩写
npm i express
效果同上
-
指定安装包的版本
npm i '<包的名称>@版本号'
npm i express@1.0.0
- 全局安装包
npm i '包的名称' -g
// 查看全家包的路径
npm root -g
全局安装的位置
在c盘,用户下的 AppData目录下 的Roaming下的npm下的node_modules文件夹里
- 将安装的包写入依赖
npm i '包的名称' --save
将安装包写入package.json依赖列表
-
将安装的包写入开发时依赖
npm i '包的名称' --save-dev
3.2 npm其他命令
-
搜索包
npm search '包的名称'
-
查看包的信息
npm view '包的名称'
-
卸载包
npm uninstall '包的名称'
-
更新包
npm update '包的名称'
4. cnpm
npm就是一个下载工具,默认就是取github上去下载,下载会比较忙,所以淘宝做了镜像.10分保持跟官网一次同步,只能下载不能上传
npm官网:www.npmjs.com
淘宝镜像: http://npm.taobao.org/
5.神奇的node_modules文件夹
如果我们引入一个文件,没有写./ 会自动在node_modules文件夹里查找模块
require('test.js')
更为有意思的是,node_modules文件夹里面的模块,在引用时候不需要考虑路径,你只要确保node_modules文件夹在需要引入模块js文件的任何祖先路径中
会有自动父级查找功能
如果当你省略文件后缀名的时候,会把引入的作为文件夹,自动识别文件夹里面的index.js
网友评论