創(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è)版本代碼迄靠。