現(xiàn)在項(xiàng)目開發(fā),離不開各種組件框架,比如express,pm2,vue,react,npm隙券,那么如何上傳自己的組件呢,下面帶大家入門闹司。
創(chuàng)建組件
新建一個(gè)目錄
mkdir npm-module
然后初始化
npm init
輸入項(xiàng)目名稱等信息娱仔,不清楚的直接按確認(rèn)
你會發(fā)現(xiàn)一個(gè)package.json文件,這個(gè)文件是用來表述項(xiàng)目信息的游桩,包括名稱牲迫,版本,依賴借卧,版權(quán)盹憎,git地址。铐刘。陪每。。(非常重要)
現(xiàn)在我們開發(fā)一個(gè)** 獲取URL參數(shù) **的組件
原則就是 最后導(dǎo)出一個(gè)對象 供別人使用
具體實(shí)現(xiàn)看代碼
function query2json(url) {
var hashIndex = url.indexOf('#'),
strQuery,
arrQuery,
map = {};
strQuery = url.substring(url.indexOf('?') + 1, hashIndex < 0 ? undefined : hashIndex);
arrQuery = strQuery.split('&');
for (var i = 0, len = arrQuery.length; i < len; i++) {
var queryItem = arrQuery[i],
arrTemp = queryItem.split('='),
key = arrTemp[0];
if (arrTemp.length > 0 && key) {
map[key] = arrTemp[1] || '';
}
}
return map;
};
exports.query2json = query2json;
index.js
現(xiàn)在我們新建一個(gè)test.js 測試我們代碼
var fn = require('./index.js');
var obj = fn.query2json('https://segmentfault.com/t/javascript?type=newest&page=2');
console.log(obj);
執(zhí)行test.js
發(fā)布到NPM
- 去官網(wǎng)注冊一個(gè)自己的開發(fā)賬號
記住自己的賬號镰吵,密碼檩禾,郵箱
- 命令行連接npm
npm adduser
查看當(dāng)前用戶
npm whoami
- 發(fā)布
npm publish
- 使用
進(jìn)入項(xiàng)目目錄
npm install qinguolei
var fn = require('qinguolei');
var obj = fn.query2json('https://segmentfault.com/t/javascript?type=newest&page=2');
console.log(obj)
index.js
node index.js
是不是很炫酷,是不是疤祭,是不是盼产。。勺馆。戏售。(二筆)
其實(shí)npm的威力侨核,不僅僅如此,npm可以引用Node的各個(gè)模塊蜈项,http芹关,fs,path等等紧卒,對文件侥衬,路由,進(jìn)程進(jìn)行管理調(diào)用跑芳,我們可以用它來開發(fā)腳手架轴总,node框架等等。
問題
- 提示你 correct user 博个,發(fā)布失敗怀樟。
解決辦法: 你把package.json里面的author改成自己npm的名字
- 提示你 version錯誤
發(fā)布后,再次修改代碼記得更改版本號
- npm registry 代理連接失敗
因?yàn)閲鴥?nèi)被強(qiáng)盆佣,很多實(shí)用cnpm或者tnpm代理往堡,需要改回來
npm config set registry https://registry.npmjs.org/
常用的代理
npm ---- https://registry.npmjs.org/
cnpm --- http://r.cnpmjs.org/
eu ----- http://registry.npmjs.eu/
au ----- http://registry.npmjs.org.au/
sl ----- http://npm.strongloop.com/
nj ----- https://registry.nodejitsu.com/
著作權(quán)聲明
原文地址: npm 模塊開發(fā)教程 | 覃國雷的博客