使用NPM工具進行包管理
1.通過NPM提供的npm命令來進行依賴包的下載了嚎、升級和移除
2.通過package.json來定義軟件包的元信息、開發(fā)依賴(開發(fā)或測試需要)廊营、部署依賴(運行時需要)
3.依賴存儲在node_modules中
4.依賴在項目之間是隔離的歪泳,全局安裝(-g)會使它成為命令行工具而不是全局依賴
一、要實現的目標
github倉庫同步到npm露筒,然后開發(fā)人員直接引用npm包進行開發(fā)呐伞。
二、PR過程中遇到的問題
報錯代碼
error Couldn't publish package: "https://registry.yarnpkg.com/lr-vue-icon: You may not perform that action with these credentials."
info Visit https://yarnpkg.com/en/docs/cli/publish for documentation about this command.
Error: Process completed with exit code 1.
截圖顯示
三慎式、登錄自己的npm賬號
方法一:適用于第一次使用npm發(fā)布伶氢,沒有npm賬號的情況
1.創(chuàng)建用戶帳戶
發(fā)布包之前你必須要注冊一個npm的賬號
2.初始化一個簡單的項目并發(fā)布。(如果是克隆一個已有的項目到本地瘪吏,這一步可以跳過)
a癣防、本地創(chuàng)建一個文件夾:例如:z-tool
b、執(zhí)行命令進入目錄: $ cd z-tool
c掌眠、執(zhí)行npm init 初始化項目蕾盯。默認一路回車就行。
d蓝丙、這樣項目就初始化完成了级遭,并生成了以packge.json文件。
默認字段簡介:
name:發(fā)布的包名渺尘,默認是上級文件夾名挫鸽。不得與現在npm中的包名重復。包名不能有大寫字母/空格/下滑線!
version:你這個包的版本鸥跟,默認是1.0.0丢郊。對于npm包的版本號有著一系列的規(guī)則,模塊的版本號采用X.Y.Z的格式,具體體現為:
1枫匾、修復bug迅诬,小改動,增加z婿牍。
2侈贷、增加新特性,可向后兼容等脂,增加y
3俏蛮、有很大的改動,無法向下兼容,增加x
description:項目簡介
mian:入口文件上遥,默認是Index.js搏屑,可以修改成自己的文件
scripts:包含各種腳本執(zhí)行命令
test:測試命令。
author:寫自己的賬號名
license:這個直接回車粉楚,開源文件協(xié)議吧辣恋,也可以是MIT,看需要吧模软。
e伟骨、在z-tool文件夾中創(chuàng)建一個文件名為index.js的文件,簡單的寫了一下內容燃异。
!function(){
console.log(`這是引入的包入口`)
}()
四携狭、本電腦第一次發(fā)布npm包,需要添加第一步創(chuàng)建的 Npm 賬號,執(zhí)行下面操作回俐。
打開終端逛腿,或者Vscode,并按快捷鍵ctrl+`仅颇,打開終端
輸入npm adduser,提示輸入賬號单默,密碼和郵箱,界面不顯示忘瓦,直管輸入搁廓,按回車即可,然后提示創(chuàng)建成功政冻。
LiudeMac-Pro:lr-vue-icon liu$ npm adduser
Username: lrachel //這里填寫npm賬戶名
Password: //這里填寫npm密碼枚抵,填寫完不顯示线欲,按回車即可
Email: (this IS public) 19437712665@qq.com //這里填寫npm郵箱
npm notice Please check your email for a one-time password (OTP)
Enter one-time password from your authenticator app: 89428650 //這里填寫郵箱驗證碼
Logged in as lrachel on https://registry.npmjs.org/. //表示登錄成功明场。
方法二、已有npm賬號李丰,在本電腦終端登錄發(fā)布過npm包苦锨,
只需要在終端輸入npm login,然后輸入賬號、密碼舟舒、郵箱和郵箱驗證碼拉庶,同方法二。
四秃励、發(fā)布npm包
發(fā)布上傳包
npm publish
如果是發(fā)布到公開組織(public organization)
npm publish --access public
成功發(fā)布:
LiudeMac-Pro:lr-vue-icon liu$ npm publish
npm notice
npm notice lr-vue-icon@0.0.4
···
npm notice
+ lr-vue-icon@0.0.4
五氏仗、查詢發(fā)布的npm包
到 npm官網 鏈接
全局搜索即可
六、引用和使用npm包
1.下載安裝依賴包
2.調用npm包中的方法
3.更新npm包
a.修改內容
b.更新版本號
c.再次發(fā)布
d.更新使用依賴包
七夺鲜、撤銷發(fā)布的npm包
如果因為某種原因需要撤銷已經發(fā)布提交的npm包
超過24小時后無法撤銷
npm --force unpublish <your-package-name> // 刪除整個npm市場的包
npm unpublish <lr-vue-icon@1.0.0> // 刪除某個版本
注意
在24小時加上 --force強制執(zhí)行才可以實現皆尔。即使撤銷了發(fā)布的包,再次發(fā)布的時候也不能與之前被撤銷的包的名稱和版本其中之一相同币励,包名和包版本組成唯一標識慷蠕,即使撤銷也并不會消失,不能重復使用食呻。
撤銷的包不能立馬再次發(fā)布流炕,撤銷24小時后才能再次發(fā)布。
不過撤包推薦用法: npm unpublish的推薦替代命令:npm deprecate [@] 使用這個命令仅胞,并不會在社區(qū)里撤銷你已有的包每辟,但會在任何人嘗試安裝這個包的時候得到警告 例如:npm deprecate <包名> '這個包我已經不再維護了喲~'
【注意】如果報權限方面的錯,加上--force
4.卸載npm包
若要卸載之前在本地安裝(在 node_modules 文件夾使用 npm install <package-name>)的軟件包干旧,則從項目的根文件夾(包含 node_modules 文件夾的文件夾)中運行:
npm uninstall <package-name>
如果使用 -S 或 --save 標志影兽,則此操作還會移除 package.json 文件中的引用。
如果程序包是開發(fā)依賴項(列出在 package.json 文件的 devDependencies 中)莱革,則必須使用 -D 或 --save-dev 標志從文件中移除:
npm uninstall -S <package-name>
npm uninstall -D <package-name>
如果該軟件包是全局安裝的峻堰,則需要添加 -g 或 --global 標志:
npm uninstall -g <package-name>
可以在系統(tǒng)上的任何位置運行此命令,因為當前所在的文件夾無關緊要盅视。
參考文檔 Reference
1.W3Cschool關于NPM系統(tǒng)的知識W3Cschool: npm 發(fā)布 publish_w3cschool
2.知乎:用戶:大前端開發(fā) 一分鐘教你發(fā)布npm包 - 知乎 (zhihu.com)