npm(node package management)竞惋,是nodejs內(nèi)置的包管理器柜去。中心思想是共享代碼,在這里我們可以找到自己需要的包拆宛,安裝嗓奢,使用,當然也可以發(fā)布我們自己的包浑厚。那下面我就來說下股耽,發(fā)布一個npm包,需要幾步钳幅?
發(fā)布一個npm包比大象裝冰箱麻煩一點點物蝙,也就是一點點,不信贡这,你往下看??:
1茬末、注冊npm賬號,點我注冊
2盖矫、登錄賬號丽惭,npm login,根據(jù)提示輸入用戶名和密碼
3辈双、賜名责掏,通過 npm info +包名 來查看包信息,包名不能重復
4湃望、初始化包
??a换衬、創(chuàng)建文件夾,mkdir + 包名
??b证芭、進入目錄瞳浦,cd + 包名
??c、初始化包废士,npm init
??d叫潦、按提示輸入信息,填充包的詳細信息官硝,會生成package.js
??e矗蕊、編寫package.js,根據(jù)需要填充目錄氢架,安裝依賴傻咖,編寫代碼
常見目錄結(jié)構(gòu)如下:
index.js代碼示例??如下
function add (num1, num2) {
return num1 + num2
}
function sub (num1, num2) {
return num1 - num2
}
module.exports = {
add,
sub
};
5、編寫好代碼岖研,發(fā)布卿操, 在項目目錄下npm publish即可
注意點:
1、每次發(fā)布前,需修改版本號硬纤,package.js中的version
2解滓、js包如何兼容ts--------------提供類型聲明文件(類型聲明文件的主文件名與JS庫文件的主文件名相同,后綴為d.ts筝家,例如主文件名為“index.js”,則類型聲明文件名為“index.d.ts”)
index.index.d.ts代碼示例??如下:
export function add(n1: number, n2: number): number;
export function sub(n1: number, n2: number): number;
package.js增加types配置如下:
"name": "xxxx",
"version": "我是版本邻辉,默認1.0.0溪王,每次發(fā)布時需要更新",
"description": "我是包描述,幫助大家在使用npm search時找到這個包",
"keywords": ["我是關(guān)鍵字","幫助大家在使用npm search時找到這個包"],
"main": "index.js", // 我是入口文件
"types": "index.d.ts", //我是類聲明文件
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"dependencies": {},
"devDependencies": {},
"author": "",
"license": "ISC"
3值骇、刪包
??a莹菱、刪除某個版本: npm unpublish 包名@版本號
??b、刪除整個包:npm unpublish 包名 --force