NodeJS 模塊開(kāi)發(fā)及發(fā)布詳解分享
NPM (Node Package Manager, http://npmjs.org ) 是 NodeJS 的模塊管理軟件,除 NodeJS 內(nèi)置的核心模塊外,其他模塊的安裝、卸載等管理操作都要通過(guò) NPM 來(lái)進(jìn)行,我們自己寫(xiě)的模塊,就要發(fā)布到NPM上來(lái)供其他人使用。
接下來(lái),我們做一個(gè)非常簡(jiǎn)單的模塊 “hello”,這個(gè)模塊的功能只有一個(gè):提供一個(gè)參數(shù) “name” ,它在控制臺(tái)輸出 “Hello name”。在開(kāi)始之前,我們首先要把node和npm裝好,安裝方法在其官方網(wǎng)站都有介紹,這里就不再多說(shuō)了。
首先,我們創(chuàng)建一個(gè)名為”hello”的目錄,作為模塊的主目錄。進(jìn)入該目錄,開(kāi)始我們的工作。
然后,寫(xiě)模塊的核心代碼,很簡(jiǎn)單,只有以下三行:
exports.Hello = function ( name ) {
console.log( "Hello " + name );
}
把它保存為 hello.js。
NodeJS每個(gè)擴(kuò)展模塊中都有一個(gè)package.json文件,用來(lái)描述模塊的一些基本屬性,比如模塊名稱(chēng)、作者、版本號(hào)等等。關(guān)于package.json寫(xiě)法的詳細(xì)說(shuō)明,可以使用 “npm help json” 命令來(lái)查看。
我們可以在模塊主目錄下執(zhí)行 npm init 來(lái)生成一個(gè)最基本的package.json。按照命令的提示依次輸入信息即可。以下是在 hello 目錄下執(zhí)行 npm init 并填入相關(guān)信息后的結(jié)果:
$ npm init
Package name: (hello) //模塊名字,npm init會(huì)自動(dòng)取當(dāng)前目錄名作為默認(rèn)名字,這里不需要改,直接確認(rèn)即可
Description: A example for write a module //模塊說(shuō)明
Package version: (0.0.0) 0.0.1 //模塊版本號(hào),這個(gè)大家按自己習(xí)慣來(lái)定就可以
Project homepage: (none) //模塊的主頁(yè),如果有的話(huà)可以填在這里,也可以不填
Project git repository: (none) //模塊的git倉(cāng)庫(kù),選填。npm的用戶(hù)一般都使用github做為自己的git倉(cāng)庫(kù)
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) //測(cè)試腳本,選填
What versions of node does it run on? (~v0.5.7) * //依賴(lài)的node版本號(hào),我們這個(gè)腳本可以運(yùn)行在任何版本的node上,因此填 *
About to write to /home/elmer/hello/package.json
// 以下是生成的package.json文件內(nèi)容預(yù)覽
{
"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) //對(duì)以上內(nèi)容確認(rèn)無(wú)誤后,就可以直接回車(chē)確認(rèn)了
到此為止,我們這個(gè)模塊就寫(xiě)完了。這時(shí)hello目錄下應(yīng)該有兩個(gè)文件:hello.js和package.json。
我們可以返回到hello的上級(jí)目錄,來(lái)測(cè)試安裝一下這個(gè)模塊:
$ npm install hello/
hello@0.0.1 ./node_modules/hello
顯示安裝成功。簡(jiǎn)單的測(cè)試一下:
$ node
> var Hello = require('hello').Hello;
> Hello('world');
Hello world正確輸出了”Hello world”。
接下來(lái)我們把它發(fā)布到NPM上。
首先,我們需要有一個(gè)NPM帳號(hào),可以使用npm adduser來(lái)注冊(cè)一個(gè):
$ npm adduser
Username: elmerzhang
Password:
Email: freeboy6716@gmail.com
簡(jiǎn)單三步,一個(gè)NPM用戶(hù)注冊(cè)成功。
最后回到 hello 根目錄,執(zhí)行一下npm publish,如果沒(méi)有任何錯(cuò)誤提示,那么就發(fā)布成功了。去 http://search.npmjs.org/上看一下吧,你的模塊應(yīng)該已經(jīng)顯示在”Latest Updates”一欄里了。
至此,一個(gè)NodeJS模塊成功發(fā)布到NPM,以后就可以在任何能訪(fǎng)問(wèn)npm庫(kù)的地方通過(guò)npm install來(lái)安裝你的模塊了。
- NodeJS中Buffer模塊詳解
- Nodejs進(jìn)程管理模塊forever詳解
- Nodejs學(xué)習(xí)筆記之NET模塊
- NodeJS學(xué)習(xí)筆記之MongoDB模塊
- NodeJS的模塊寫(xiě)法入門(mén)(實(shí)例代碼)
- nodejs命令行參數(shù)處理模塊commander使用實(shí)例
- nodejs下打包模塊archiver詳解
- Nodejs實(shí)戰(zhàn)心得之eventproxy模塊控制并發(fā)
- 詳解Nodejs基于mongoose模塊的增刪改查的操作
- NodeJs使用Mysql模塊實(shí)現(xiàn)事務(wù)處理實(shí)例
- NodeJS自定義模塊寫(xiě)法(詳解)
- nodeJS模塊簡(jiǎn)單用法示例
相關(guān)文章
JS中強(qiáng)制類(lèi)型轉(zhuǎn)換的實(shí)現(xiàn)
JavaScript中有幾種強(qiáng)制類(lèi)型轉(zhuǎn)換的方法,可以將一個(gè)數(shù)據(jù)類(lèi)型轉(zhuǎn)換為另一個(gè)數(shù)據(jù)類(lèi)型,具有一定的參考價(jià)值,感興趣的可以了解一下2023-05-05JavaScript數(shù)組常用方法實(shí)例講解總結(jié)
這篇文章主要介紹了JavaScript數(shù)組及常見(jiàn)方法,結(jié)合實(shí)例形式總結(jié)分析了JavaScript數(shù)組的基本獲取、添加、刪除、排序、翻轉(zhuǎn)等相關(guān)操作技巧,需要的朋友可以參考下2021-09-09ztree獲取當(dāng)前選中節(jié)點(diǎn)子節(jié)點(diǎn)id集合的方法
這篇文章主要介紹了ztree獲取當(dāng)前選中節(jié)點(diǎn)子節(jié)點(diǎn)id集合的方法,實(shí)例分析了ztree的方法transformToArray使用技巧,需要的朋友可以參考下2015-02-02js 提交form表單和設(shè)置form表單請(qǐng)求路徑的實(shí)現(xiàn)方法
下面小編就為大家?guī)?lái)一篇js 提交form表單和設(shè)置form表單請(qǐng)求路徑的實(shí)現(xiàn)方法。2016-10-10解決 FireFox 下[使用event很麻煩] 的問(wèn)題.
解決 FireFox 下[使用event很麻煩] 的問(wèn)題....2006-08-08window.event.srcElement 得到事件源對(duì)象
window.event.srcElement 得到事件源對(duì)象代碼,大家可以參考腳本之家以前發(fā)的代碼,多瀏覽兼容的。2009-05-05詳解JavaScript的Date對(duì)象(制作簡(jiǎn)易鐘表)
這篇文章主要為大家詳細(xì)介紹了JavaScript的Date對(duì)象,和大家分享如何制作簡(jiǎn)易鐘表,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2015-12-12JS插件plupload.js實(shí)現(xiàn)多圖上傳并顯示進(jìn)度條
這篇文章主要為大家詳細(xì)介紹了PHP結(jié)合plupload.js JS插件實(shí)現(xiàn)多圖上傳并顯示進(jìn)度條加刪除實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-11easywasmplayer實(shí)現(xiàn)視頻流播放示例詳解
這篇文章主要為大家介紹了easywasmplayer實(shí)現(xiàn)視頻流播放示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09