npm? ?=>? ? ?Node? Package? ?Manager? ? ? ?是nodeJs的包管理工具
npm 官網(wǎng)? ? http://www.npmjs.org
npm常用命令
npm? ?-v? ? ? ? ? ? ? ? ? ? ? ? ? //查看版本號(hào)
npm? ?--help? ? ? ? ? ? ? ? ? ? //查看npm所有命令
npm? ?adduser? ? ? ? ? ? ? ? //添加 npm 賬號(hào)硫豆,也可以去npm官網(wǎng)注冊(cè)
npm? ?init? ? ? ? ? ? ? ? ? ? ? ? //構(gòu)建項(xiàng)目說(shuō)明龙巨,生成 package.json文件
npm? ?view? ? jquery? ?versions? ? ? ? ? ? ? ?//查看歷史版本信息(最多只能顯示100條)? ? ? ??
npm? ?view? ?node? ?versions? --json? ? ? ?//查看所有版本信息
npm? ?view? ?jquery? ?version? ? ? ? ? ? ? ? ? //查看最新版本信息
npm? ?info? ?jquery? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //查看所有版本及jquery的信息
npm? ?ls? ?jquery? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//查看本地安裝的jquery版本
npm? ?ls? ?jquery? ?-g? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//查看全局安裝的jquery版本
npm? ?i? ?jquery@3.2.3? ? ? ? ? ? ? ? ? ? ? ? ? ?//安裝指定版本?
npm? ?i? ?jquery? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//安裝推薦的版本
npm? ?i? ?jquery@latest? ? ? ? ? ? ? ? ? ? ? ? ? //安裝指定笼呆、最新版本?
npm? ?install? ?gulp? ? ?簡(jiǎn)寫? ? npm? ?i? ?gulp? ? ?//安裝依賴
npm? ?install? ? gulp? ?-S? -D? ? ?
npm? ?install? ? gulp@3.0.0? ?--save? ??
npm? ?update? ?gulp? ? ? ? ? ? //可以把當(dāng)前目錄下node_modules子目錄里邊的對(duì)應(yīng)模塊更新至最新版本? ? ??
npm? ?update? ?gulp -g? ? ? ? //可以把全局安裝的對(duì)應(yīng)命令行程序更新至最新版??
npm? ?uninstall? ? gulp@3.0.0? ?--save? ? ? ? ? ?//卸載依賴
npm? ?install? ?cnpm? ?-g? --registry=?https://registry.npm.taobao.org? ? ? //安裝淘寶鏡像
npm? ?config? ?list? ? ? ? ? ? ? ? ? ? ? ? ? ? //查看npm的配置
npm? ?config? set? registry? ?https://registry.npm.taobao.org? ? ? //設(shè)置淘寶鏡像源
npm? ?config? set? registry? ?https://registry.npmjs.org? ? ? ? ? ? ? ?//設(shè)置npm源
npm? ?set? ?disturl? ? https://npm.taobao.org/dist? ? ? ? ? ? ??//設(shè)置資源庫(kù)從淘寶庫(kù)獲取?
npm? ?cache? ?clean? ?--force? ? ? ? ?//清空npm本地緩存 ,用于對(duì)付使用相同版本號(hào)發(fā)布新版本代碼的人?
npm? ?run? ?dev / test / build? ? ? ? ? ?//執(zhí)行script命令
npm? ?login? ? ? ? ? ? ? ? ? ?//發(fā)布包時(shí)登錄npm賬號(hào)用的
npm? ? publish? ? ? ? ? ? ? //發(fā)布包到npm官方庫(kù)
npm? ??unpublish? ? test? ? ? //撤銷已發(fā)布的包?
npm? ? unpublish? ? ?test? ? ?--force? ? ? ? ? //強(qiáng)制撤銷
npm? ? unpublish? ? ? test@1.0.2? ? ? ? ? ? ?//可以撤銷發(fā)布自己發(fā)布過(guò)的某個(gè)版本代碼?
發(fā)布自己的包到npm官方庫(kù)
1旨别、首先創(chuàng)建項(xiàng)目? 生成package.json
npm? init?
package name: (hktest) //包名诗赌,可更改,也可以使用默認(rèn)(直接回車)
version: (1.0.0) 0.0.1 //版本秸弛,可更改铭若,也可以使用默認(rèn)(直接回車)
description: 演示上傳npm包 //項(xiàng)目描述,方便別人了解你的模塊作用递览,搜索的時(shí)候也有用
entry point: (index.js) //指定了程序的主入口文件叼屠,可更改,也可以使用默認(rèn)(直接回車)
test command: //測(cè)試命令(直接回車)
git repository: //git倉(cāng)庫(kù)(直接回車)
keywords: //一個(gè)字符串?dāng)?shù)組绞铃,方便別人搜索到本模塊镜雨,可更改,也可以使用默認(rèn)(直接回車)
author: hk//作者儿捧,可更改荚坞,也可以使用默認(rèn)(直接回車)
license: (ISC) //你可以在https://spdx.org/licenses/這個(gè)地址查閱協(xié)議列表 ,可更改菲盾,也可以使用默認(rèn)(直接回車)?
2西剥、創(chuàng)建index.js入口文件
var rename = function (name) {
? ? var str? =? '用戶' + name
? ? return str?;
}
module.exports = {
? ??rename?
}????
3、新建README.md文件
# hktest
# 快速上手
## 安裝
npm? ?install? ?hktest
## 全局注冊(cè)(在main.js文件里注冊(cè))
```javascript
import? ?tool? ?from? ?'hktest';
global.tool= hktest;
```
## 局部注冊(cè)
```javascript
import? ?tool? from? ?'hktest';
4亿汞、登錄發(fā)布
登錄npm賬號(hào):
npm? ? login
沒(méi)有賬號(hào)就去npm官網(wǎng)注冊(cè)或者命令行注冊(cè):
npm? ? adduser
登錄好了就可以執(zhí)行發(fā)布了:? ??
npm? ? publish
5、更新包及刪除揪阿、撤銷已發(fā)布的npm包
更新直接執(zhí)行:
npm? ? publish
每次發(fā)布要改變版本號(hào)疗我,且版本號(hào)要比上一次版本號(hào)大
這里簡(jiǎn)單介紹一下版本號(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位沦童。
刪除仑濒、撤銷已發(fā)布的npm包
npm? ??unpublish? ? test? ? ? ? ? ? ? ? ? ? ? ? ? //撤銷已發(fā)布的包?
npm? ? unpublish? ? test? ? ?--force? ? ? ? ? //強(qiáng)制撤銷
npm? ? unpublish? ? test@1.0.2? ? ? ? ? ? ?//可以撤銷發(fā)布自己發(fā)布過(guò)的某個(gè)版本的代碼?
6叹话、發(fā)布遇到的問(wèn)題及解決方案
1、這一步的常規(guī)報(bào)錯(cuò)及處理
npmERR!publishFailedPUT403
npmERR!codeE403
npmERR!no_permsPrivatemode enable,only admin can publish this module:
出現(xiàn)原因:使用的是淘寶源cnpm,登陸到的是cnpm
解決方法:切換到npmjs的網(wǎng)址墩瞳,代碼如下
npm? config? set? registry? https://registry.npmjs.org
2驼壶、包名重名報(bào)錯(cuò)
報(bào)錯(cuò)403:You do not have permission to publish "xxx". Are you logged in as the correct user??
出現(xiàn)原因:所要publish的包的name和npmjs網(wǎng)上已經(jīng)發(fā)布的包的名字重復(fù),所以收你沒(méi)有權(quán)限發(fā)布這個(gè)名字的包喉酌。(簡(jiǎn)單解釋就是你想要的名字被別人搶先注冊(cè)了)
解決方法:找到package.json文件热凹,把name的值換掉。如果還出現(xiàn)上述錯(cuò)誤就是還是重名的瞭吃,繼續(xù)換碌嘀!
3、未激活郵箱報(bào)錯(cuò)
報(bào)錯(cuò)403:you must verify your email before publishing a new package:
出現(xiàn)原因:沒(méi)有用郵箱激活登錄到注冊(cè)賬號(hào)的郵箱? 激活一下就好了
7歪架、npm包過(guò)濾上傳文件?.npmignore
當(dāng)你上傳包到npm庫(kù)時(shí)股冗,有一些本地的依賴文件和測(cè)試demo等不想上到npm庫(kù)里,這時(shí)就要用到.npmignore過(guò)濾文件了,在根目錄下新建文件取名.npmignore,用編輯器打開寫入你想過(guò)濾文件類型就可以了和蚪。
eg:
以上都是我平時(shí)遇到的止状,我總結(jié)了一下寫了出來(lái),方便大家查看攒霹。
如果文中有寫錯(cuò)或不對(duì)的地方懇請(qǐng)您留言指出批評(píng)怯疤,若此文對(duì)你有幫助,請(qǐng)加關(guān)注收藏點(diǎn)贊催束,謝謝集峦!。