最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

NodeJS 模塊開發(fā)及發(fā)布詳解分享

 更新時間:2012年03月07日 07:58:33   作者:  
NodeJS 是一門年輕的語言,擴展模塊并不太全,經(jīng)常我們想用某個模塊但是卻找不到合適的
比如前兩天我需要使用hmac和sha1來做簽名,就沒有找到一個比較好用的模塊,這時候就需要我們自己來實現(xiàn)相應的功能了。自己寫完之后,再把它打包成一個模塊分享給大家來用,即方便了其他人,又能讓自己有點小小的成就感,實在是一件一舉多得的好事情。接下來,我就為大家介紹一下如何封裝一個NodeJS模塊并把它分享給其他人。

NPM (Node Package Manager, http://npmjs.org ) 是 NodeJS 的模塊管理軟件,除 NodeJS 內(nèi)置的核心模塊外,其他模塊的安裝、卸載等管理操作都要通過 NPM 來進行,我們自己寫的模塊,就要發(fā)布到NPM上來供其他人使用。

接下來,我們做一個非常簡單的模塊 “hello”,這個模塊的功能只有一個:提供一個參數(shù) “name” ,它在控制臺輸出 “Hello name”。在開始之前,我們首先要把node和npm裝好,安裝方法在其官方網(wǎng)站都有介紹,這里就不再多說了。

首先,我們創(chuàng)建一個名為”hello”的目錄,作為模塊的主目錄。進入該目錄,開始我們的工作。

然后,寫模塊的核心代碼,很簡單,只有以下三行:
復制代碼 代碼如下:

exports.Hello = function ( name ) {
console.log( "Hello " + name );
}

把它保存為 hello.js。

NodeJS每個擴展模塊中都有一個package.json文件,用來描述模塊的一些基本屬性,比如模塊名稱、作者、版本號等等。關(guān)于package.json寫法的詳細說明,可以使用 “npm help json” 命令來查看。

我們可以在模塊主目錄下執(zhí)行 npm init 來生成一個最基本的package.json。按照命令的提示依次輸入信息即可。以下是在 hello 目錄下執(zhí)行 npm init 并填入相關(guān)信息后的結(jié)果:
復制代碼 代碼如下:

$ npm init
Package name: (hello) //模塊名字,npm init會自動取當前目錄名作為默認名字,這里不需要改,直接確認即可
Description: A example for write a module //模塊說明
Package version: (0.0.0) 0.0.1 //模塊版本號,這個大家按自己習慣來定就可以
Project homepage: (none) //模塊的主頁,如果有的話可以填在這里,也可以不填
Project git repository: (none) //模塊的git倉庫,選填。npm的用戶一般都使用github做為自己的git倉庫
Author name: Elmer Zhang //模塊作者名字
Author email: (none) freeboy6716@gmail.com //模塊作者郵箱
Author url: (none) http://www.elmerzhang.com //模塊作者URL
Main module/entry point: (none) hello.js //模塊的入口文件,我們這里是hello.js
Test command: (none) //測試腳本,選填
What versions of node does it run on? (~v0.5.7) * //依賴的node版本號,我們這個腳本可以運行在任何版本的node上,因此填 *
About to write to /home/elmer/hello/package.json
// 以下是生成的package.json文件內(nèi)容預覽
{
"author": "Elmer Zhang <freeboy6716@gmail.com> (http://www.elmerzhang.com)",
"name": "hello",
"description": "A example for write a module",
"version": "0.0.1",
"repository": {
"url": ""
},
"main": "hello.js",
"engines": {
"node": "*"
},
"dependencies": {},
"devDependencies": {}
}
Is this ok? (yes) //對以上內(nèi)容確認無誤后,就可以直接回車確認了

到此為止,我們這個模塊就寫完了。這時hello目錄下應該有兩個文件:hello.js和package.json。

我們可以返回到hello的上級目錄,來測試安裝一下這個模塊:
復制代碼 代碼如下:

$ npm install hello/
hello@0.0.1 ./node_modules/hello

顯示安裝成功。簡單的測試一下:
復制代碼 代碼如下:

$ node
> var Hello = require('hello').Hello;
> Hello('world');

Hello world正確輸出了”Hello world”。

接下來我們把它發(fā)布到NPM上。

首先,我們需要有一個NPM帳號,可以使用npm adduser來注冊一個:
復制代碼 代碼如下:

$ npm adduser
Username: elmerzhang
Password:
Email: freeboy6716@gmail.com

簡單三步,一個NPM用戶注冊成功。

最后回到 hello 根目錄,執(zhí)行一下npm publish,如果沒有任何錯誤提示,那么就發(fā)布成功了。去 http://search.npmjs.org/上看一下吧,你的模塊應該已經(jīng)顯示在”Latest Updates”一欄里了。

至此,一個NodeJS模塊成功發(fā)布到NPM,以后就可以在任何能訪問npm庫的地方通過npm install來安裝你的模塊了。

相關(guān)文章

  • 關(guān)于js中window.location.href,location.href,parent.location.href,top.location.href的用法與區(qū)別

    關(guān)于js中window.location.href,location.href,parent.location.href

    關(guān)于js中window.location.href,location.href,parent.location.href,top.location.href的用法
    2010-10-10
  • 禁止iframe頁面的所有js腳本如alert及彈出窗口等

    禁止iframe頁面的所有js腳本如alert及彈出窗口等

    一個頁面里面需要放一個iframe框架來預覽網(wǎng)站,可是被預覽的這個網(wǎng)站中含有很多js腳本,于是想禁止iframe里面的腳本,下面是方法
    2014-09-09
  • JS無限極樹形菜單,json格式、數(shù)組格式通用示例

    JS無限極樹形菜單,json格式、數(shù)組格式通用示例

    本文為大家介紹下JS無級樹形菜單的實現(xiàn),修改了一下數(shù)據(jù)格式,是json和數(shù)組或者混合型的數(shù)據(jù)都通用,不用特定key等,想學習的朋友可以參考下
    2013-07-07
  • js 彈出菜單/窗口效果

    js 彈出菜單/窗口效果

    想象一下,你把一個重要內(nèi)容放在一個彈出窗口,又不聚集到這個窗口。讓使用屏幕閱讀器的同學情何以堪,只有當他們 tab 到這頁面結(jié)束,還繼續(xù) tab,才可能找到這個彈窗
    2011-10-10
  • chrome下判斷點擊input上標簽還是其余標簽的實現(xiàn)方法

    chrome下判斷點擊input上標簽還是其余標簽的實現(xiàn)方法

    下面小編就為大家?guī)硪黄猚hrome下判斷點擊input上標簽還是其余標簽的實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-09-09
  • 微信小程序canvas分享海報功能

    微信小程序canvas分享海報功能

    這篇文章主要為大家詳細介紹了微信小程序canvas分享海報功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • 純js實現(xiàn)的積木(div層)拖動功能示例

    純js實現(xiàn)的積木(div層)拖動功能示例

    這篇文章主要介紹了純js實現(xiàn)的積木(div層)拖動功能,結(jié)合實例形式分析了javascript隨機生成各種顏色div層及響應鼠標事件改變元素屬性實現(xiàn)拖動效果的相關(guān)操作技巧,需要的朋友可以參考下
    2017-07-07
  • JavaScript代碼生成PDF文件的方法

    JavaScript代碼生成PDF文件的方法

    如何使用js生成pdf文件呢,下面通過本文給大家分享JavaScript代碼生成PDF文件的方法,需要的朋友參考下吧
    2016-02-02
  • javascript實現(xiàn)網(wǎng)頁端解壓并查看zip文件

    javascript實現(xiàn)網(wǎng)頁端解壓并查看zip文件

    昨天給大家分享了在網(wǎng)頁端使用zip.js插件實現(xiàn)在線壓縮文件的代碼,今天給大家分享一下javascript實現(xiàn)網(wǎng)頁端解壓并查看zip文件的方法,非常的實用,有需要的小伙伴可以參考下
    2015-12-12
  • JavaScript學習筆記之函數(shù)記憶

    JavaScript學習筆記之函數(shù)記憶

    這篇文章主要介紹了JavaScript學習筆記之函數(shù)記憶,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09

最新評論

乐山市| 河南省| 南投市| 缙云县| 磴口县| 勐海县| 招远市| 屏南县| 镶黄旗| 内乡县| 新丰县| 根河市| 临清市| 牙克石市| 祁东县| 尉氏县| 隆回县| 林西县| 江北区| 内乡县| 嘉黎县| 金阳县| 察雅县| 陇川县| 岐山县| 元氏县| 定兴县| 商洛市| 义乌市| 金坛市| 延庆县| 莒南县| 原阳县| 平舆县| 肃北| 多伦县| 曲水县| 蒙阴县| 唐山市| 平昌县| 修武县|