一、包(package)
CommonJS的包规范允许我们将一组相关的模块组合到一起,形成一组完整的工具
CommonJS的包规范有包结构和包描述文件两个部分组成
1.1包结构
用于组织包中的各种文件
包实际上就是一个压缩文件,解压以后还原为目录。符合规范的目录,应该包含如下文件
-package :描述文件
-bin:可执行二进制文件
-lib:js代码
-doc:文档
-test:单元测试
1.2包描述文件
包描述的相关信息,以供外部读取分析
包描述文件用于表达非代码相关的信息,它是一个 JSON格式的文件,-package.json位于包的根目录下,是包的重要组成部分
package.json中的字段(**此文件中不能有任何的注释信息)
- name、description、version、keywords、maintainers、contributors、bugs、licenses、repositories、dependencies、homepage、os、cpu、engine、builtin、directories、implements、scripts、author、bin、main、devDependencies。
二、NPM(Node Package Manager)
CommonJS包规范是理论,NPM是其中一种实践
对于Node而言,NPM帮助其完成了第三方模块的发布、安装和依赖等。借助NPM,Node与第三方模块之间形成了很好的一个生态系统。
2.1NPM命令
npm -v -产看版本
npm -帮助说明
npm search -搜索模块包
npm install/i 包名 - 在当前目录安装包
npm install 包名 --save 安装包并添加到依赖中
npm install 包名 -g -全局模式安装包(全局安装的包一般都是一些工具)
npm install 包名 -registry=地址 -从镜像源安装
npm config set registry 地址 设置镜像源
npm remove / r - 删除包
三、CNPM
NPM的服务需要翻墙,那CNPM是淘宝将NPM所有的模块镜像到了咱们中国的服务器,只需要安装配置淘宝的镜像地址,就可以从国能下载对应的依赖而不需要翻墙,并且速度更快,
安装 cnpm 配置淘宝镜像
npm install -g cnpm --registry=https://registry.npm.taobao.org
四、node搜索包的流程
/**
* 通过npm下载的包都放在node_modules文件夹中
* 通过npm下载的包,直接通过包名引入即可
*
* node在使用模块名字来引入模块式,它会首先在当前目录的node_modules中寻找是否有该模块,
* 如果有责直接使用,如果没有则去上一级目录的node_modules中寻找
* 如果有责直接使用,如果没有则在去上一级目录寻找,直到找到为止
* 直到找到磁盘的根目录,如果依旧没有,则报错
*/
var math = require("math");
console.log(math.add(1,2))