Node快閃:發布你自己的npm模塊
到Holiday Season了,工作閑了下來,從今天開始我會發布一些 Node.js, npm, JavaScript 相關的快速入門教程。
每一篇教程都會力求簡潔:讀者應該可以在十五分鐘以內可以完成所有步驟,並可以入門相關概念和技能。
我會根據大家的反饋添加更多的細節和答疑,包括評論區,更多文章,以及不定期微信群等。
Slack討論群建立好了 http://nodeflash.slack.com,在知乎上給我發私信就可以把你加進來。
今天我們來發布一個npm模塊。
本文中的例子模塊的github和npm網址如下:
https://github.com/szhangpitt/flash-node-npm-module-shaopeng/tree/npm-module
https://www.npmjs.com/package/flash-node-npm-module-shaopeng
準備工作:Mac OS X terminal,或Linux,或Windows ,安裝Node.js
1. https://www.npmjs.com/ 註冊賬號。
2. https://github.com/ 註冊賬號, https://help.github.com/ 設置好git環境。
3. 打開Terminal,運行
$ npm loginn
輸入npm的用戶名,密碼,email

$ npm view some-namen
如果返回404,說明這個名字沒被佔用,本文用flash-node-npm-module-shaopeng為例

5. 在github上創建一個project,以模塊的名字(flash-node-npm-module-shaopeng)命名。
注意以下.gitignore選Node,license可以隨便選一個。

6. 從github上將項目同步下來
$ git clone <your-git-repo-url>n

$ cd <your-git-repo-dir>n
8. 創建npm模塊,
$ npm initn
按回車鍵可以直接接受默認值,我只修改了version為0.0.1,然後添加了description和license,這些以後都可以改。完成之後生成了package.json。


$ touch index.jsn
查看目錄中的所有文件,用 $ ls -la
$ ls -la n

10. 編輯index.js,這就是你的模塊的侏羅紀,不,主邏輯:
$ nano index.jsn

$ git statusn
所以其實除去git創建時自帶的配置文件和版權文件等,我們只創建了兩個文件:package.json 和 index.js

12. 添加這兩個文件到git中,然後同步到github
$ git add index.js package.jsonn$ git commit -m "npm module, initial logic"n$ git push origin mastern

$ npm publishn

$ npm view <your-module-name>n

15. 用自己剛發布的模塊試試手吧!創建一個本地項目(想同步到github也可以,本文略過)
$ cd ../n$ mkdir test-my-modulen$ cd test-my-modulen

16. 創建一個npm project,使用上文中的npm init,可以按回車選擇所有默認值
$ npm initn
17. 安裝我們剛剛發布的模塊
$ npm install --save <your-module-name>n

$ cat package.jsonn

18. 創建一個js文件,如果只是測試可以是任何名字,比如app.js
$ touch app.jsn$ nano app.jsnn// 以下是app.js的內容nvar addFn = require(flash-node-npm-module-shaopeng);nvar add30 = addFn(30);nvar result = add30(50);nnconsole.log(result); // should be 80n

19. 用Node運行app.js,查看結果
$ node app.jsn$ 80n

$ npm loginn# 登錄npm賬號,為後面發布做準備nn$ npm view <some-name>n# 按名稱查找npm模塊nn$ npm initn# 在當前目錄中創建一個npm項目,本質上是創建package.json文件nn$ npm publishn# 發布npm模塊 nn$ npm install --save <npm-module-name>n# 安裝一個npm模塊,並添加到package.json中nn# 下面是常用的Terminal命令n$ cat filename # 顯示文件內容n$ ls -la # 列出當前目錄中所有文件n$ mkdir dirname # 創建一個目錄n$ cd dirname # 切換到dirname目錄下n$ touch filename # 創建一個空文件n$ nano filename # Mac OS 下的文件編輯器,也可以使用vim, emacs, 記事本等 n
推薦閱讀:
※基於 Node.js 的聲明式可監控爬蟲網路
※Node.js 性能調優之調試篇(三)——三款實用調試工具
※深入 Promise(二)——進擊的 Promise
※採用Symbol和process.nextTick實現Promise
※《球球大作戰》源碼解析——(1)運行起來
