如何發(fā)布自己模塊到NPM

創(chuàng)建項(xiàng)目

npm init
name: (my-npm)
version: (1.0.0)
description: 0.0.1
entry point: (index.js)
test command:
git repository:
keywords:
author: Awe
license: (ISC) MIT
About to write to F:\github\my-npm\package.json:

{
  "name": "my-npm",
  "version": "1.0.0",
  "description": "0.0.1",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "Awe",
  "license": "MIT"
}
Is this ok? (yes)

接著就依次填寫, 不想填寫的話也可以一路Enter

  • name:
    模塊名,之后發(fā)布之后就可以讓用戶npm install xxxx來(lái)引用你的開源模塊了
  • version:
    版本號(hào)倾剿,語(yǔ)義版本號(hào)分為X.Y.Z三位筷频,分別代表主版本號(hào)蚌成、次版本號(hào)和補(bǔ)丁版本號(hào)。當(dāng)代碼變更時(shí)凛捏,版本號(hào)按以下原則更新担忧。
  • 如果只是修復(fù)bug,需要更新Z位坯癣。
  • 如果是新增了功能瓶盛,但是向下兼容,需要更新Y位示罗。

  • 如果有大變動(dòng)惩猫,向下不兼容,需要更新X位蚜点。

  • description:
    簡(jiǎn)單介紹自己的模塊

  • main:
    入口文件轧房,必要,當(dāng)通過(guò)require('xxx')時(shí)绍绘,是讀取main里聲明的文件

  • test command:
    測(cè)試命令

  • git repository:
    git倉(cāng)庫(kù)地址

  • keywords:
    關(guān)鍵詞奶镶,可以通過(guò)npm搜索你填寫的關(guān)鍵詞找到你的模塊

  • author:
    作者信息,可以之后編輯更詳細(xì)一些

  • license(ISC):
    代碼授權(quán)許可 可以參考這里

以上放心可以大膽寫陪拘,因?yàn)橹蠓凑摹?/p>

初始化項(xiàng)目完成厂镇,可以看到目錄中出現(xiàn)了一個(gè)叫 package.json 的文件

{
  "name": "my-npm",
  "version": "1.0.0",
  "description": "0.0.1",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "Awe",
  "license": "MIT"
}

更多配置信息可以參考一下vue的package.json的https://github.com/vuejs/vue/blob/dev/package.json

編寫代碼

比如我最近寫的這個(gè)粒子庫(kù)

class Qarticles {
constructor(canvas, options = {}) {
  this.canvas = canvas
  this.width = options.width || 100
  }
  ...
}

 module.exports = Qarticles

搞定

但是作為一個(gè)簡(jiǎn)單的粒子庫(kù),還需要考慮一下標(biāo)簽引入的需求
那么可以在引入的時(shí)候判斷一下當(dāng)前被引入的方式
于是我們來(lái)構(gòu)造一個(gè)兼容多種引入方式的方法

(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
typeof define === 'function' && define.amd ? define(factory) : (global.Qarticles = factory());

})(this, function () {
  class Qarticles {
    constructor(canvas, options = {}) {
      this.canvas = canvas
      this.width = options.width || 100
    }
    ...
    }
  return Qarticles
})

發(fā)布模塊

1.在npm 注冊(cè)用戶
2.在本地登錄自己的npm賬號(hào)


npm login  

3.發(fā)布模塊

npm publish 
//返回下面的信息就是發(fā)布成功了 
+ qarticles@0.3.4

還可以給自己的模塊的來(lái)個(gè)圖片徽章左刽,可以放在github倉(cāng)庫(kù)的README.md里可以讓訪問(wèn)到這項(xiàng)目的人看到項(xiàng)目的狀態(tài)
http://shields.io/
https://nodei.co/

附贈(zèng):

npm update <package>
//可以把當(dāng)前目錄下node_modules子目錄里邊的對(duì)應(yīng)模塊更新至最新版本捺信。

npm cache clear
//可以清空NPM本地緩存,用于對(duì)付使用相同版本號(hào)發(fā)布新版本代碼的人欠痴。

npm unpublish <package>@<version>

//可以撤銷發(fā)布自己發(fā)布過(guò)的某個(gè)版本代碼迄靠。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市斋否,隨后出現(xiàn)的幾起案子梨水,更是在濱河造成了極大的恐慌,老刑警劉巖茵臭,帶你破解...
    沈念sama閱讀 222,104評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件疫诽,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡旦委,警方通過(guò)查閱死者的電腦和手機(jī)奇徒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)缨硝,“玉大人摩钙,你說(shuō)我怎么就攤上這事〔楸纾” “怎么了胖笛?”我有些...
    開封第一講書人閱讀 168,697評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵网持,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我长踊,道長(zhǎng)功舀,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,836評(píng)論 1 298
  • 正文 為了忘掉前任身弊,我火速辦了婚禮辟汰,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘阱佛。我一直安慰自己帖汞,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,851評(píng)論 6 397
  • 文/花漫 我一把揭開白布凑术。 她就那樣靜靜地躺著翩蘸,像睡著了一般。 火紅的嫁衣襯著肌膚如雪麦萤。 梳的紋絲不亂的頭發(fā)上鹿鳖,一...
    開封第一講書人閱讀 52,441評(píng)論 1 310
  • 那天扁眯,我揣著相機(jī)與錄音壮莹,去河邊找鬼。 笑死姻檀,一個(gè)胖子當(dāng)著我的面吹牛命满,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播绣版,決...
    沈念sama閱讀 40,992評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼胶台,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了杂抽?” 一聲冷哼從身側(cè)響起诈唬,我...
    開封第一講書人閱讀 39,899評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎缩麸,沒想到半個(gè)月后铸磅,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,457評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡杭朱,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,529評(píng)論 3 341
  • 正文 我和宋清朗相戀三年阅仔,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片弧械。...
    茶點(diǎn)故事閱讀 40,664評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡八酒,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出刃唐,到底是詐尸還是另有隱情羞迷,我是刑警寧澤界轩,帶...
    沈念sama閱讀 36,346評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站衔瓮,受9級(jí)特大地震影響耸棒,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜报辱,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,025評(píng)論 3 334
  • 文/蒙蒙 一与殃、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧碍现,春花似錦幅疼、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至慢睡,卻和暖如春逐工,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背漂辐。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工泪喊, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人髓涯。 一個(gè)月前我還...
    沈念sama閱讀 49,081評(píng)論 3 377
  • 正文 我出身青樓袒啼,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親纬纪。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蚓再,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,675評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)包各,斷路器摘仅,智...
    卡卡羅2017閱讀 134,704評(píng)論 18 139
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,303評(píng)論 25 707
  • 什么是 NPM npm之于Node,就像pip之于Python,gem之于Ruby,composer之于PHP问畅。 ...
    ihoey閱讀 6,253評(píng)論 2 36
  • npm是什么 NPM的全稱是Node Package Manager娃属,是隨同NodeJS一起安裝的包管理和分發(fā)工具...
    build1024閱讀 7,896評(píng)論 0 9
  • 起風(fēng)了,總是在忽如其來(lái)的時(shí)候按声。不喜歡安靜膳犹,因?yàn)檫@會(huì)讓風(fēng)聲格外地響,就像那時(shí)候签则,我們說(shuō)過(guò)的話须床,總是越安靜,越響起渐裂,只...
    零度鋼琴閱讀 218評(píng)論 0 0