Nodejs 包管理
模块和包
Node.js 的模块和包机制的实现参照了 CommonJS 的标准,但并未完全遵循。
1.包规范
包是在模块基础上更深一步的抽象, 类似于 c/c++ 的函数库.
Node.js 包是一个目录. 其中包含一个JSON格式的说明文件 package.json
CommonJS 规范特征:
-> package.json 必须在包的顶层目录下
-> 二进制文件在bin目录下
-> JavaScript代码在lib目录下
-> 文档应该在doc目录下
-> 单元测试在test目录下
2. 加载
require('Modile_Name')
功能: 加载其他模块
说明: 不会重复加载以加载的模块
3. 对外公开
exports.setName
功能: 公开一个模块中的函数或对象
说明: exports 本身仅仅是一个普通的空对象,即 {}. 所以 exports.函数 就是给它加了函数
module.exports 则是用一个对象取代 exports 对象. (不可以对 exports 直接赋值替代此功能)
方式1:
//使用
exports.SayName = function(thyName) {console.log(thyName)};
//调用
var test = require('./fileName');
test.SayName('XueYou');
方式2:
//使用
function hello(){
var name;
this.setNam(){};
this.SayName(){};
}
module.exports = hello;
//调用
var test = require('./fileName');
test = new test(); //注意因为是对象,所以要new
test.SayName();