node.js模块和包

1.创建及加载模块
(1)创建模块
node.js提供了exports和require两个对象,其中exports是模块公开的借口,require用于从外部获取一个模块,即获取模块的exports对象
module.js和getModule.js

module.js

getModule.js

结果



(2)单次加载
上面的例子有点类似创建一个对象,但实际上和对象又有本质的区别,因为require不会重复加载模块,也就是说无论调用多少次require,获取的模块都是同一个
module.js


getModule.js


结果


不管创建多少个myModule,获取的模块是同一个
(3)覆盖exports
有时我们只是想把一个对象封装到模块中。
singleObject.js

getSingleObject.js

结果


二,创建包
1.包的概念
包是在模块基础上更深一步的抽象,Node.js的包类似于C/C++的函数库或者java的类库,它讲某个独立功能封装起来,用于发布,更新,依赖管理的版本控制。开发npm来解决包的发布和获取。
2.如何创建一个包
CommonJS规范的包应该具备以下特征;
package.json必须在包的顶层目录下
二进制文件应该在bin目录下
JavaScript代码应该在lib目录下
文档应该在doc目录下
单元测试应该在test目录下
Node.js对包的要求并没有那么严格,只要顶层目录有package.json,并且符合基本规范即可。
2.package.json
Node.js在调用某个包时,会检查包中package.json文件的main字段,将其作为包的接口模块,如果package.json或main字段不存在,会尝试寻找index.js或index.code作为包的接口
package.json的规范属性
name:包的名称,必须唯一
description:包的概要说明
version:符合语义化版本识别规范版本字符串
keywords:关键字数据,通常用于搜索
maintainers:维护者数组,每个元素要包含name,emain,web可选字段
contributors:贡献者数组,格式与maintainers相同。包的作者应该是贡献者数据的第一个元素
bugs:提供bug的地址,可以是网址或者电子邮件地址
licenses:许可证数组,每个元素要包含type和url字段
repositiories:创库托管数组,每个元素要包含type,url和path字段
dependencies:包的依赖,一个关联数组,由包名称和版本号组成


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wen's

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值