原文地址: 如何發(fā)布自己開發(fā)的npm包
前一段時間開發(fā)了一些基于Vue的插件涡扼,感覺還挺好用的摘投,就發(fā)布到npm妄帘,希望大家都能使用唆鸡。
下面說一下發(fā)布npm 的流程:
注冊一個npm賬號
進入網(wǎng)址: https://www.npmjs.com 注冊一個npm賬號名斟。
本人的npm地址為: https://www.npmjs.com/~quanzaiyu
注冊后如果需要進行頭像設(shè)置脑慧,需要到 https://en.gravatar.com 注冊一個賬號(使用的是WordPress賬號),添加頭像砰盐。
開發(fā)一個npm包
初始化倉庫
每一個npm包都需要一個package.json
文件闷袒,進行常規(guī)配置。
首先進入需要發(fā)布npm的目錄岩梳,輸入
npm init
進行包初始化囊骤,自動生成一個package.json
文件,填寫一些簡單的選項冀值,包括: 包名也物、版本號、主入口文件列疗、描述滑蚯、作者、腳本 等抵栈。
最終文件大致如下:
{
"name": "qzy-npm-test",
"version": "1.0.0",
"description": "一個npm測試包",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "quanzaiyu",
"license": "ISC"
}
主入口文件
可以看到告材,在package.json
中指定主入口文件為index.js
,那么古劲,就得在項目下創(chuàng)建一個名為index.js
的文件斥赋。比如:
function hello(name){
console.log("hello "+ name);
}
exports.hello = hello;
可以看到,此文件導出了一個名叫hello
的函數(shù)产艾。
測試此包
將整個文件夾丟到node_modules
目錄下疤剑,在node_modules
同級目錄下使用npm init
創(chuàng)建 package.json
,內(nèi)容大體如下:
{
"name": "projects",
"version": "1.0.0",
"description": "",
"main": "index.js",
"dependencies": {
"qzy-npm-test": "^1.0.1"
},
"devDependencies": {},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC"
}
再在同級目錄下創(chuàng)建一個test.js
闷堡,內(nèi)容如下:
var h = require('qzy-npm-test');
h.hello('Jarrick');
執(zhí)行node test
隘膘,控制臺輸出hello Jarrick
。說明此包測試成功缚窿。
創(chuàng)建的目錄結(jié)構(gòu)如下:
projects/ # 測試項目目錄
node_modules/ # 包目錄
qzy-npm-test/ # 插件目錄
index.js # 插件入口文件
package.json # 插件配置文件
test.js # 測試文件
package.json # 測試配置文件
發(fā)布一個npm包
以下操作都在 projects/node_modules/qzy-npm-test/
目錄下進行棘幸。
添加npm用戶
使用之前注冊的npm賬號進行登錄
$ npm adduser
username: xxx
password: xxx
email: xxx
發(fā)布npm包
$ npm publish
發(fā)布后可在自己的npm主頁看到
更新npm包
如果之后修改過此包,需要修改package.json
中的版本號字段version
倦零,使其大于當前版本误续,然后npm publish
即可吨悍。
如果未更改版本號,會報錯:
npm ERR! publish Failed PUT 403
npm ERR! code E403
npm ERR! You cannot publish over the previously published version 1.0.0. : qzy-npm-test
npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\quanzaiyu\AppData\Roaming\npm-cache\_logs\2017-09-12T07_59_18_829Z-debug.log
修改版本號后則成功:
$ npm publish
+ qzy-npm-test@1.0.1
刪除npm包
$ npm unpublish
$ npm unpublish --force
安裝使用npm包
安裝使用方法很簡單蹋嵌,跟以前安裝npm包同樣的使用即可育瓜。
npm i <packageName>
比如安裝剛才發(fā)布的包:
npm i qzy-npm-test --save
使用剛才發(fā)布的包:
let a = require('qzy-npm-test')
a.hello('qzy')
執(zhí)行node index
即可看見輸出了hello qzy
詳細的使用請訪問本人的npm: https://www.npmjs.com/~quanzaiyu