發(fā)布node模塊到npm

npm(Node Package Manager)是Node.js的包管理工具。npm社區(qū)有很多好用的模塊。在開發(fā)過程中,我們也會在項目中提煉出一些有用的功能模塊。這個時候可以發(fā)布到npm并開源到github,方便別人使用同時又進(jìn)一步根據(jù)issue完善和健壯模塊的功能。
下面我就根據(jù)自己的一個模塊koa2-validation來簡單介紹發(fā)布 npm 模塊的方法步驟以及一些注意點(diǎn)。

創(chuàng)建項目

通常我們的項目要放到github上開源,便于別的同學(xué)提issue。所以可以創(chuàng)建一個github項目(這里默認(rèn)大家清楚如何使用github,不明請google)。另外,默認(rèn)本機(jī)已經(jīng)安裝node和npm(不清楚請參考使用nvm安裝node)。

項目結(jié)構(gòu)

github創(chuàng)建項目的時候,勾選默認(rèn)的 .gitignore、License 和 README 文件。本地通過npm init 來創(chuàng)建 package.json 文件,需要數(shù)據(jù)一些模塊的信息,如名稱、版本、描述、作者、license等。

$ npm init

另外,需要一些 eslint 文件等,具體的目錄結(jié)構(gòu)如下:

.
├── .eslintrc.json   // eslint 文件
├── .git
├── .gitignore      // .gitignore
├── .npmignore      // .npmignore 不需要publish的文件
├── .travis.yml     // travis CI
├── LICENSE
├── README.md
├── index.js       // 入口文件
├── lib            // 主要邏輯代碼
├── node_modules
├── package-lock.json
├── package.json
└── test          //測試用例

主要的邏輯代碼放在lib目錄下。不清楚的同學(xué)可以參考koa2-validation的目錄結(jié)構(gòu)。

測試

項目通常需要加入必要的單元測試。而且因為可能別的同學(xué)會用到,這一點(diǎn)尤為重要。
關(guān)于node的測試,大家根據(jù)自己的習(xí)慣會使用mocha、jest等。我個人偏向于使用ava來進(jìn)行單元測試。不清楚如何使用ava測試的,可以參考這篇。 關(guān)于更多測試結(jié)構(gòu),參考這里。
關(guān)于持續(xù)集成,在github上通常使用 travis 比較多。travis使用起來也很簡單方便。首先需要將你的github 賬號和travis關(guān)聯(lián),travis就會同步你的github repository。然后,你需要打開對應(yīng)項目的CI 開關(guān)。最后在項目中定義對應(yīng)的.travis.yml即可在項目push的時候自動運(yùn)行測試腳本。
更多關(guān)于travis的使用可以參考這篇官方文檔.以下是我的.travis.yml 文件。

#指定運(yùn)行環(huán)境
language: node_js
#指定nodejs版本,可以指定多個
node_js:
  - "7.6.0"

before_script:
  - npm install

#運(yùn)行的腳本命令
script:
  - npm run test

#指定分支,只有指定的分支提交時才會運(yùn)行腳本
branches:
  only:
    - master

增加徽章

完成功能開發(fā)之后,最好在 README 中詳細(xì)地介紹模塊的使用說明。
另外,我們經(jīng)??吹?github 項目有很多漂亮的badge, 例如下載量和 測試狀況等。那如何添加這些徽章呢??梢詤⒖?shields這篇文章

發(fā)布項目

項目完成之后,我們需要將模塊發(fā)布到npmjs。通常我們需要先查找一下是否自己的模塊已經(jīng)被注冊,并確定自己的模塊名稱。
首先,我們需要到npm官網(wǎng) 注冊一個賬號。然后添加到本地配置。

$ npm adduser   
Username: dennis.ge
Password: ****
Email: gedennis@163.com

然后驗證自己的配置。

npm whoami

最后,在package.json 定義好版本,通過 npm publish 發(fā)布模塊即可。

npm publish

npm publish的時候經(jīng)常會遇到發(fā)布不成功的狀況。

npm WARN adduser Incorrect username or password
npm WARN adduser You can reset your account by visiting:
npm WARN adduser 
npm WARN adduser     http://admin.npmjs.org/reset

這個時候通??赡苁莕vm安裝的npm,或者你的 npm registry 不是npmjs,通過nrm修改npm源即可。

這里只是介紹了一些簡單的發(fā)布步驟,關(guān)于更多版本定義以及升級,請參考這篇。

至此,我們就成功發(fā)布了一個 npm 模塊。

總結(jié)

這篇文章簡單介紹了一下如何發(fā)布 npm 模塊。包括如何創(chuàng)建項目,項目結(jié)構(gòu),測試,持續(xù)集成以及如何添加badge等一些內(nèi)容。
關(guān)于發(fā)布npm 模塊,需要進(jìn)一步了解版本的定義,以及版本的升級等更深入的內(nèi)容。

參考

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容