發佈本身的module - 個人第一個npm組件!

問題來源

前段時間去幫朋友的公司,重構一個前端項目,大體把原項目瀏覽了一遍,而後就風風火火的開幹了,框架選型用了最流行的React+Reflux,然而第一個首頁就遇到個問題,源項目有一個fullpage組件開發的全屏切換,卻不被React支持。而後就去Github上去找,結果沒找到一個好用的,而後就想,我是否能本身開發一個呢。javascript

準備工具

  • 安裝nodeJS前端

  • 註冊一個github帳戶用於託管代碼java

  • 註冊一個npm帳戶node

  • 開發你的module,更新至githubreact

  • 發佈module至npmgit

安裝nodeJS

https://nodejs.org/engithub

根據系統安裝對應的版本,安裝完後對應的npm也會被安裝進去進入終端,輸入命令查詢安裝版本!mongodb

$ node -v
$ npm -v

github建立項目

https://github.com 註冊帳戶,新建項目,而後clone到本地。npm

終端進入到項目文件夾,執行npm init命令,構建模塊的描述文件,系統會提示你輸入所需的信息,不想輸入就直接Enter跳過。這裏主要的幾個配置以下json

  • name就是你要發佈的module名;

  • version版本信息(每發佈一次版本號都必須大於上一次發佈的版本號);

  • entry入口文件。

剩下的就是開發啦

$ npm init

This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sane defaults.

See `npm help json` for definitive documentation on these fields
and exactly what they do.

Use `npm install <pkg> --save` afterwards to install a package and
save it as a dependency in the package.json file.

Press ^C at any time to quit.
name: (node) easy_mongo
version: (0.0.0) 0.1.0
description: An easy mongodb client for node.js based on native mongodb driver.
entry point: (index.js) 
test command: make test
git repository: https://github.com/JeremyWei/easy_mongo.git
keywords: Mongodb node easy 
author: JeremyWei
license: (BSD-2-Clause) MIT

npm註冊

輸入完用戶名,密碼,郵箱後沒有錯誤信息就完成了。

$ npm adduser
Username: your name
Password: your password
Email: (this IS public) your email

查詢或者登錄別的用戶命令

$ npm whoami
$ npm login

npm module 發佈

module開發完畢後,剩下的就是發佈啦,進入項目根目錄,輸入命令。

$ npm publish

這裏有時候會遇到幾個問題,問題1:

npm ERR! no_perms Private mode enable, only admin can publish this module:

這裏注意的是由於國內網絡問題,許多小夥伴把npm的鏡像代理到淘寶或者別的地方了,這裏要設置回原來的鏡像。

npm config set registry=http://registry.npmjs.org

問題2:

npm ERR! you do not have permission to publish "your module name". Are you logged in as the correct user?

提示沒有權限,其實就是你的module名在npm上已經被佔用啦,這時候你就去須要去npm搜索你的模塊名稱,若是搜索不到,就能夠用,而且把package.json裏的name修改過來,從新npm publish,看到以下信息就表示安裝完成了,rc-fullpage就是個人模塊名。

+ rc-fullpage@0.1.0

更新版本,發佈

$ npm version 0.1.1
$ npm publish

版本號規範

npm社區版本號規則採用的是semver(語義化版本),主要規則版本格式:主版本號.次版本號.修訂號,版本號遞增規則以下:

  • 主版本號:當你作了不兼容的 API 修改,

  • 次版本號:當你作了向下兼容的功能性新增,

  • 修訂號:當你作了向下兼容的問題修正。

先行版本號及版本編譯信息能夠加到「主版本號.次版本號.修訂號」的後面,做爲延伸。

持續集成

目前npm上開源的項目實在是太多,從中找出靠譜的項目要花費必定的精力跟時間去驗證,因此開發者都會對本身的開源項目持續更新,而且通過測試的項目更加值得信賴。對於剛上線而且github上star星數不多的項目,使用者都會懷疑,這個項目靠譜不?因此這時候你須要告訴他,老子靠譜,怎麼作?持續集成。

目前Github已經整合了持續集成服務travis,咱們只須要在項目中添加.travis.yml文件,在下一次push以後,travis就會定時執行npm test來測試你的項目,而且會在測試失敗的時候通知到你,你也能夠把項目當前的狀態顯示在README.md中,讓人一目瞭然,好比React裏的

圖片描述

.travis.yml 是一個YAML文件,具體的相關的配置見This,例子以下:

language: node_js
node_js:
  - "6"
  - "6.1"
  - "5.11"
services:
  - mongodb

這個例子的是讓travis在node.js的0.6.x,0.6.1,0.5.11三個版本下對項目進行測試,而且須要mongodb的服務。

End

至此你的第一個module就開發併發布完成啦。

rc-fullpage 這是我前天化了一天時間開發的一個全屏的React組件,因爲比較趕,功能不完善,只實現了簡單的基礎功能,接口還在後續開發中,單元測試沒有,持續集成也木有。So,盡情的吐槽吧!

相關文章
相關標籤/搜索