npm? ?=>? ? ?Node? Package? ?Manager? ? ? ?是nodeJs的包管理工具
npm 官網? ? http://www.npmjs.org
npm常用命令
npm? ?-v? ? ? ? ? ? ? ? ? ? ? ? ? //查看版本號
npm? ?--help? ? ? ? ? ? ? ? ? ? //查看npm所有命令
npm? ?adduser? ? ? ? ? ? ? ? //添加 npm 賬號,也可以去npm官網注冊
npm? ?init? ? ? ? ? ? ? ? ? ? ? ? //構建項目說明,生成 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? ? ?簡寫? ? npm? ?i? ?gulp? ? ?//安裝依賴
npm? ?install? ? gulp? ?-S? -D? ? ?
npm? ?install? ? gulp@3.0.0? ?--save? ??
npm? ?update? ?gulp? ? ? ? ? ? //可以把當前目錄下node_modules子目錄里邊的對應模塊更新至最新版本? ? ??
npm? ?update? ?gulp -g? ? ? ? //可以把全局安裝的對應命令行程序更新至最新版??
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? ? ? //設置淘寶鏡像源
npm? ?config? set? registry? ?https://registry.npmjs.org? ? ? ? ? ? ? ?//設置npm源
npm? ?set? ?disturl? ? https://npm.taobao.org/dist? ? ? ? ? ? ??//設置資源庫從淘寶庫獲取?
npm? ?cache? ?clean? ?--force? ? ? ? ?//清空npm本地緩存 ,用于對付使用相同版本號發布新版本代碼的人?
npm? ?run? ?dev / test / build? ? ? ? ? ?//執行script命令
npm? ?login? ? ? ? ? ? ? ? ? ?//發布包時登錄npm賬號用的
npm? ? publish? ? ? ? ? ? ? //發布包到npm官方庫
npm? ??unpublish? ? test? ? ? //撤銷已發布的包?
npm? ? unpublish? ? ?test? ? ?--force? ? ? ? ? //強制撤銷
npm? ? unpublish? ? ? test@1.0.2? ? ? ? ? ? ?//可以撤銷發布自己發布過的某個版本代碼?
發布自己的包到npm官方庫
1、首先創建項目? 生成package.json
npm? init?
package name: (hktest) //包名,可更改,也可以使用默認(直接回車)
version: (1.0.0) 0.0.1 //版本,可更改,也可以使用默認(直接回車)
description: 演示上傳npm包 //項目描述,方便別人了解你的模塊作用,搜索的時候也有用
entry point: (index.js) //指定了程序的主入口文件,可更改,也可以使用默認(直接回車)
test command: //測試命令(直接回車)
git repository: //git倉庫(直接回車)
keywords: //一個字符串數組,方便別人搜索到本模塊,可更改,也可以使用默認(直接回車)
author: hk//作者,可更改,也可以使用默認(直接回車)
license: (ISC) //你可以在https://spdx.org/licenses/這個地址查閱協議列表 ,可更改,也可以使用默認(直接回車)?
2、創建index.js入口文件
var rename = function (name) {
? ? var str? =? '用戶' + name
? ? return str?;
}
module.exports = {
? ??rename?
}????
3、新建README.md文件
# hktest
# 快速上手
## 安裝
npm? ?install? ?hktest
## 全局注冊(在main.js文件里注冊)
```javascript
import? ?tool? ?from? ?'hktest';
global.tool= hktest;
```
## 局部注冊
```javascript
import? ?tool? from? ?'hktest';
4、登錄發布
登錄npm賬號:
npm? ? login
沒有賬號就去npm官網注冊或者命令行注冊:
npm? ? adduser
登錄好了就可以執行發布了:? ??
npm? ? publish
5、更新包及刪除、撤銷已發布的npm包
更新直接執行:
npm? ? publish
每次發布要改變版本號,且版本號要比上一次版本號大
這里簡單介紹一下版本號。
語義版本號分為X.Y.Z三位,分別代表主版本號、次版本號和補丁版本號。當代碼變更時,版本號按以下原則更新。
如果只是修復bug,需要更新Z位。
如果是新增了功能,但是向下兼容,需要更新Y位。
如果有大變動,向下不兼容,需要更新X位。
刪除、撤銷已發布的npm包
npm? ??unpublish? ? test? ? ? ? ? ? ? ? ? ? ? ? ? //撤銷已發布的包?
npm? ? unpublish? ? test? ? ?--force? ? ? ? ? //強制撤銷
npm? ? unpublish? ? test@1.0.2? ? ? ? ? ? ?//可以撤銷發布自己發布過的某個版本的代碼?
6、發布遇到的問題及解決方案
1、這一步的常規報錯及處理
npmERR!publishFailedPUT403
npmERR!codeE403
npmERR!no_permsPrivatemode enable,only admin can publish this module:
出現原因:使用的是淘寶源cnpm,登陸到的是cnpm
解決方法:切換到npmjs的網址,代碼如下
npm? config? set? registry? https://registry.npmjs.org
2、包名重名報錯
報錯403:You do not have permission to publish "xxx". Are you logged in as the correct user??
出現原因:所要publish的包的name和npmjs網上已經發布的包的名字重復,所以收你沒有權限發布這個名字的包。(簡單解釋就是你想要的名字被別人搶先注冊了)
解決方法:找到package.json文件,把name的值換掉。如果還出現上述錯誤就是還是重名的,繼續換!
3、未激活郵箱報錯
報錯403:you must verify your email before publishing a new package:
出現原因:沒有用郵箱激活登錄到注冊賬號的郵箱? 激活一下就好了
7、npm包過濾上傳文件?.npmignore
當你上傳包到npm庫時,有一些本地的依賴文件和測試demo等不想上到npm庫里,這時就要用到.npmignore過濾文件了,在根目錄下新建文件取名.npmignore,用編輯器打開寫入你想過濾文件類型就可以了。
eg:
以上都是我平時遇到的,我總結了一下寫了出來,方便大家查看。
如果文中有寫錯或不對的地方懇請您留言指出批評,若此文對你有幫助,請加關注收藏點贊,謝謝!。