使用NPM工具進(jìn)行包管理
- 通過NPM提供的npm命令來進(jìn)行依賴包的下載、升級和移除
- 通過package.json來定義軟件包的元信息、開發(fā)依賴(開發(fā)或測試需要)、部署依賴(運行時需要)
- 依賴存儲在node_modules中
- 依賴在項目之間是隔離的,全局安裝(-g)會使它成為命令行工具而不是全局依賴
npm自定義包制作流程
-
準(zhǔn)備
- 注冊npm用戶 npm官網(wǎng)
- 安裝nodejs環(huán)境 nodejs官網(wǎng)
-
創(chuàng)建自己的npm包
- 創(chuàng)建一個空的包項目文件夾
- 初始化npm包
cd $package_root_path npm init - 創(chuàng)建出來的package.json樣子如下
{ "name": "your-npm-package-name", "version": "1.0.0", "description": "your npm package description", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "your developer name", "license": "MIT OR OTHER LICENSE", "keywords": [ "js", "something key words" ] } - 創(chuàng)建一個index.js文件作為包入口文件(和package.json下的main保持一致)
- 編寫完善index.js
-
發(fā)布npm包
- 添加登錄用戶,請確保當(dāng)前鏈接源是官網(wǎng),使用nrm工具可以快速查看和切換
npm adduser - 發(fā)布上傳包
npm publish - 如果是發(fā)布到公開組織(public organization)
npm publish --access public
- 添加登錄用戶,請確保當(dāng)前鏈接源是官網(wǎng),使用nrm工具可以快速查看和切換
-
引用和使用npm包
- 下載安裝依賴包
//安裝但不寫入package.json npm install your-package-name //安裝并寫入package.json的"dependencies"中 npm install -S your-package-name //安裝并寫入package.json的"devDependencies"中 npm install -D your-package-name //安裝指定版本 npm install -S your-package-name@1.0.0 //全局安裝 npm install -g your-package-name - 調(diào)用npm包中的方法
//默認(rèn)導(dǎo)入 import something from 'your-package-name' //模塊化導(dǎo)入 import {something} from 'your-package-name'
- 下載安裝依賴包
-
更新npm包
- 修改內(nèi)容
- 更新版本號
//直接修改package.json中的version "version": "1.1.0" //或者使用命令修改 npm version 1.1.0 - 再次發(fā)布
npm publish //OR npm publish --access public - 更新使用依賴包
//手工修改package.json中對應(yīng)包的版本號,然后執(zhí)行 npm update your-package-name //直接命令行更新到指定版本 npm update your-package-name@1.1.0 -S //或者更新到最新版本 npm update your-package-name@latest -S
-
撤銷發(fā)布的npm包
如果因為某種原因需要撤銷已經(jīng)發(fā)布提交的npm包
超過24小時后無法撤銷npm --force unpublish your-package-name- 注意
- 在24小時加上 --force強制執(zhí)行才可以實現(xiàn)。即使撤銷了發(fā)布的包,再次發(fā)布的時候也不能與之前被撤銷的包的名稱和版本其中之一相同,包名和包版本組成唯一標(biāo)識,即使撤銷也并不會消失,不能重復(fù)使用。
- 撤銷的包不能立馬再次發(fā)布,撤銷24小時后才能再次發(fā)布。