码迷,mamicode.com
首页 > 其他好文 > 详细

8.创建包

时间:2017-12-02 14:06:42      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:仓库   文件夹   重命名   一个   UI   license   使用   许可证   说明文   

包是在模块基础上更深一步的抽象,它将某个独立的功能封装起来,用于发布、更新、依赖管理和版本控制。
Node.js 的包是一个目录,其中包含一个 JSON 格式的包说明文件package.json 。严格符合 CommonJS规范的包应该具备以下特征:

    1.package.json 必须在包的顶层目录下;  
    2.二进制文件应该在 bin  目录下;  
    3.JavaScript 代码应该在 lib  目录下;  
    4.文档应该在 doc  目录下;  
    5.单元测试应该在 test  目录下。

Node.js 对包的要求并没有这么严格,只要顶层目录下有 package.json ,并符合一些规范即可。当然为了提高兼容性,我们还是建议你在制作包的时候,严格遵守 CommonJS 规范。

1. 作为文件夹的模块

模块与文件是一一对应的。文件不仅可以是 JavaScript代码或二进制代码,还可以是一个文件夹。最简单的包,就是一个作为文件夹的模块。

// 建立一个叫做 somepackage  的文件夹,在其中创建 index.js
exports.hello = function(){
    console.log("hello.");
};

// 然后在  somepackage  之外建立 getpackage.js ,内容如下: 
var somePackage = require("./somepackage");
somePackage.hello();    // hello
// 我们使用这种方法可以把文件夹封装为一个模块,即所谓的包。包通常是一些模块的集合,在模块的基础上提供了更高层的抽象,相当于提供了一些固定接口的函数库。
通过定制 package.json,我们可以创建更复杂、更完善、更符合规范的包用于发布。

package.json
在前面例子中的 somepackage 文件夹下,我们创建一个叫做 package.json 的文件,内容如下所示:

{ 
  "main" : "./lib/interface.js" 
}

// 然后将 index.js  重命名为 interface.js  并放入lib子文件夹下。以同样的方式再次调用这个包,依然可以正常使用。
// Node.js 在调用某个包时,会首先检查包中 package.json  文件的 main 字段,将其作为包的接口模块,如果 package.json或main字段不存在,会尝试寻找 index.js  或 index.node  作为包的接口。 

package.json  是 CommonJS 规定的用来描述包的文件,完全符合规范的 package.json文件应该含有以下字段。

1.name:包的名称,必须是唯一的,由小写英文字母、数字和下划线组成,不能包含空格。 
2.description:包的简要说明。 
3.version:符合语义化版本识别规范的版本字符串。 
4.keywords :关键字数组,通常用于搜索。 
5.maintainers:维护者数组,每个元素要包含name、email(可选)、web  (可选)字段。 
6.contributors:贡献者数组,格式与maintainers相同。包的作者应该是贡献者数组的第一个元素。 
7.bugs:提交bug的地址,可以是网址或者电子邮件地址。 
8.licenses :许可证数组,每个元素要包含 type (许可证的名称)和 url  (链接到许可证文本的地址)字段。 
9.repositories:仓库托管地址数组,每个元素要包含 type (仓库的类型,如 git  )、url(仓库的地址)和  path  (相对于仓库的路径,可选)字段。 
10.dependencies:包的依赖,一个关联数组,由包名称和版本号组成。 

 

8.创建包

标签:仓库   文件夹   重命名   一个   UI   license   使用   许可证   说明文   

原文地址:http://www.cnblogs.com/alantao/p/7953836.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!