日期:2014-05-16  浏览次数:20340 次

win7里怎么样写一个 node.js模块以及NPM Package

参考?http://blog.csdn.net/bugknightyyp/article/details/8783162,但上面的过程有不少谬误,我亲自试验并作了梳理如下【另也是针对window版的】:

nodejs 模块符合CommonJs规范的模块,都是简单的实现。相信我,通过读完这篇文章,你就能够创建一个简单的node模块。

? ? ? ?首先,让我们看看怎样在一个app使用通过NPM安装在本地的node模块:

?

var easyimg = require('easyimage');


? ? ??定义在easyimage模块中的方法和属性就会出现在easyimg对象中。你可以使用它们,像这样 easyimg.resize(), easyimg.crop()等等。想当方便的模块化,对不对?接下来讲述怎么为你自己创建一个。

?

? ? ? ?创建一个新目录,命名为"modtest",然后cd进入这个目录:【win7右键建目录,命令行cd到目录也一样】

?

$ mkdir modtest
$ cd modtest


? ? ? ?创建一个文件,命名为"converter.js",做为你的模块文件:

?

?

$ vi converter.js


? ? ? ?converter.js模块将有2个方法,一个是将输入传唤成二进制,另外一个是转换成十六进制。"converter.js"的内容是:

?

?

exports.bin = function(input) {
    return input.toString(2);
};

exports.hex = function(input) {
    return input.toString(16);
};

?创建另外一个文件,命名为"app.js",它将作为你的node 应用:

?

?

$ vi app.js

? ? ?"app.js"的内容是:

?

?

var converter = require('./converter.js');
var num = 10;
var bin = converter.bin(num);
console.log('BIN:' + bin);
var hex = converter.hex(num);
console.log('HEX: ' + hex);

? ? ? 运行这个node应用:

?

?

$ node app.js
BIN: 1010
HEX: a

? ? ? ?至此你已经完成了它。你自己的node模块!

?通过上面的例子,你能够明白:如果一个文件包含附带属性的exports,它就能够在任何app中作为一个有效模块使用。然而,我们必须指定模块文件的的路径。那样看起来很不爽,对不对?为什么不能这样写:

?

var converter = require('converter');

? ? ? ?当然可以,但是我们需要把这个模块转换成正确的 NPM 包文件 并且在本地安装它。过程是非常简单的,但是需要一些改变。让我们的模块变得整洁一点。 ? ??

?

? ? ? ?创建一个路径,命名为"converter",重命名"converter.js"为"index.js",并且它移动到"converter"目录下:

?

$ mkdir converter
$ mv converter.js converter/index.js

【以上在win7直接鼠标操作即可,总之就是要把刚才写的converter.js转成index.js并放到当前文件夹的子目录中】

在"converter"目录创建一个包定义文件:

?

?

$ cd converter
$ vi package.json

? ? ? "package.json"文件的内容为: