node.js自学笔记(6)-包

包的概念与模块的概念在于,包是一个整体,具有某个功能的集合,简单的来说就是一个文件夹,里面包含各个模块

创建包

新建一个文件夹,随便取一个名字,我取名为doctorq,然后再该文件下新建一个js文件,注意这个时候的名称必须为index.js,不然node是识别不了的。

//doctorq/index.js
exports.hello = function(){
    console.log('Hello.');
};

在doctorq文件夹同级目录下新建一个test.js,我们来引用我们创建的包:

//test.js
var  package1= require('./doctorq');
package1.hello();

执行该脚本

D:\node.js\0212>node test.js
Hello.
D:\node.js\0212>

可以看出我们成功引用了我们的包。

package.json

上面的例子中,我们说包下的模块文件必须是index.js,不然外部是引用不到的,这样添加其他模块肯定是不行的,那么CommonJS为我们定义了一个叫package.json的文件,这个文件是干啥的,我们先来看一个例子就明白了。首先我们新建一个lib目录,我们将上面的doctorq文件下的index.js移到该目录下,并将文件名修改为comeon.js。这个时候执行test.js肯定是引用不到的,会报错的。ok,重点来了。这个时候我们在doctorq目录下新建一个一个package.json文件,在里面添加如下代码:

//package.json
{
    "main":"./lib/comeon.js"
}

这个时候我们运行test.js是没有问题的。说明我们的package.json起作用啦。那么很显然package.json起到的作用有点类似于清单文件,它里面列举了lib下的含有的模块,这样外部引用的时候就能定位到相应的模块。引用我学习的书中一句话。就能解释上面的程序了:

Node.js 在调用某个包时,会首先检查包中 package.json 文件的 main 字段,将其作为
包的接口模块,如果 package.json 或 main 字段不存在,会尝试寻找 index.js 或 index.node 作
为包的接口

下面来看看package.json有哪些属性:
1.name包名称,唯一
2.description:包的描述信息
3.version:版本
4.keywords:用于搜索的关键字
5.maintainers :维护人员
6.contributors:贡献人员
7.bugs : 提交bug的地址,网址或邮件
8.licenses:许可信息
9.repositories:仓库托管信息
10.dependencies:依赖信息
怎么让我想到gradle的脚本,真的很神似啊,什么时候让gradle给nodejs提供一个plugin呢?maybe

下面看一个样本:

//package.json
{
    "main":"./lib/comeon.js",
    "name":"doctorq",
    "description":"test for package.json",
    "version":"0.7.0",
    "keywords":["testerhome","doctorq"],
    "maintainers":[{"name":"doctorq","email":"542113578@qq.com"}],
    "contributors":[{"name":"doctorq","web":"http://blog.csdn.net/itfootball"}],
    "bugs":{"mail":"542113578@qq.com","web":"http://blog.csdn.net/itfootball"},
    "licenses":[{"type":"234sdjdfd","url":"http://www.google.com"}],
    "repositories":[{"type":"git","url":"http://github.com/BYVoid/mypackage"}],
    "dependencies":{
        "webkit":"1.2",
        "ssl":{
            "gnutls":["1.0","2.0"],
            "openssl":"0.9.8"
        }
    },
}

(说实话这个文件真心不好写,写的脑袋疼,警告node.js开发者赶紧换吧,这样定义文件你累不累。)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值