包管理工具介紹
- 包是什么
包(package),代表了一組特定功能的源碼集合 - 包管理工具
管理包的應(yīng)用軟件,可以對包進(jìn)行下載安裝,更新,刪除,上傳等操作
借助包管理工具,可以快速開發(fā)項目,提升開發(fā)效率 - 常用的包管理工具
下面列舉了前端常用的包管理工具
· npm
· yarn
· cnpm
npm搜索包
搜索包的方式有兩種
- 命令行【npm s/ search 關(guān)鍵字】
- 網(wǎng)站搜索網(wǎng)址是https://www.npmjs.com/
下載安裝包
可以通過npm install和npm i命令安裝包
# 格式
npm install <包名>
npm i <包名>
# 示例
npm install uniq
npm i uniq
運行之后文件夾下會增加兩個資源
- node_modules 文件夾存放下載的包
- package-lock.json包的所文件,用來鎖定包的版本
安裝uniq之后,uniq就是當(dāng)前這個包的一個依賴包,有時會簡稱為依賴
比如創(chuàng)建一個包名字為A,A中安裝了包名字是B,我們就說B是A的一個依賴包,也會說A依賴B
require導(dǎo)入npm模塊的基本流程
- 在當(dāng)前文件夾node_modules中尋找同名的文件夾
- 在上級目錄中下的node_modules中尋找同名的文件夾,直至找到磁盤根目錄
//1.導(dǎo)入uniq包
const uniq = require('./node_modules/uniq/uniq.js');
//2.使用函數(shù)
let arr = [1,2,3,4,5,4,3,2,1];
const result = uniq(arr);
console.log(result);
開發(fā)依賴與生產(chǎn)依賴
開發(fā)環(huán)境是程序員專門用來寫代碼的環(huán)境,一般是指程序員的電腦,開發(fā)環(huán)境的項目一般只能程序員自己訪問
生產(chǎn)環(huán)境是項目代碼正式運行的環(huán)境,一般是指正式的服務(wù)器電腦,生成環(huán)境的項目一般每個用戶都可以訪問
生產(chǎn)依賴與開發(fā)依賴
類型 | 命令 |
---|---|
生產(chǎn)依賴 | npm i -S uniq -S等效于–save, -S是默認(rèn)選項 npm i -save uniq 包信息保護(hù)在package.json中dependencies屬性 |
開發(fā)依賴 | npm i -D less -D等效于 --save -dev npm i --save -dev less 包信息保存在package.json中devDependencies屬性 |
舉例說明:
例如做蛋炒飯需要大米、油、蔥、雞、鍋、煤氣、鏟子等
其中,鍋,煤氣,鏟子屬于開發(fā)依賴,只在制作階段使用
而大米,油,蔥,雞蛋屬于生產(chǎn)依賴,在制作與最終食用都會用到
所以開發(fā)依賴是只在開發(fā)階段使用的依賴包,而生成依賴是開發(fā)階段和最終上線運行階段都用到的依賴包
npm全局安裝
可以執(zhí)行安裝選項-g進(jìn)行全局安裝
npm i -g nodemon
全局命令安裝完成之后就可以在命令行的任何位置運行nodemon命令
該命令的作用是自動重啟node應(yīng)用程序
說明:
- 全局安裝的命令不受工作目錄位置影響
- 可以通過npm root -g可以查看全局安裝包的位置
- 不是所有的包都適合全局安裝,只有全局類的工具才適合,可以通過查看包的官方文檔來確定安裝方式。
npm安裝包的所有依賴
通過npm i (即npm install)命令實現(xiàn),該命令可以根據(jù)package.json和package-lock.json的依賴聲明安裝項目依賴
npm安裝指定版本包與刪除包
項目中可能會遇到版本不匹配的情況,有時就需要安裝指定版本的包,可以使用下面的命令的
## 格式
npm i <包名 @ 版本號>
##示例
npm i jquery@1.11.2
刪除依賴
項目中可能需要刪除某些不需要的包,可以使用下面的命令
## 局部刪除
npm remove uniq
npm r uniq
## 全局刪除
npm remove -g nodemon
npm配置命令別名
通過配置命令別名可以更簡單的執(zhí)行命令
配置package.json中的scripts屬性
{
·
·
·
"scripts":{
"server":"node server.js",
"start":"node index.js",
},
·
·
}
配置完成之后,可以使用別名執(zhí)行命令
npm run server
npm run start
不過 start別名比較特別,使用時可以省略run
npm start
補充說明:
· npm start 是項目中常用的一個命令,一般用來啟動項目
· npm run有自動向上級目錄查找的特性,跟require函數(shù)也一樣
· 對于陌生的項目,我們可以通過查看scripts屬性來參考項目的一些操作
yarn的介紹與操作
yarn是由Facebook在2016年推出的新的JavaScript包管理工具,官方網(wǎng)址:https://yarnpkg.com/
特點:
- 速度超快:yarn緩存了每個下載過的包,所有再次使用時無需重復(fù)下載。同時利用并行下載以最大化資源利用率,因此安裝速度更快
- 超級安全:在執(zhí)行代碼之前,yarn會通過算法校驗每個安裝包的完成行
- 超級可靠:使用詳細(xì)、簡潔的鎖文件格式和明確的安裝算法,yarn能改保證在不同系統(tǒng)上無差異的工作
npm與yarn的選擇
可以根據(jù)不同的場景進(jìn)行選擇
- 個人項目
如果是個人項目,哪個工具都可以,可以根據(jù)自己的喜好來選擇 - 公司項目
如果是公司要根據(jù)項目代碼來選擇,可以通過鎖文件判斷項目的包管理工具 - npm的鎖文件為package-lock.json
- yarn的鎖文件為yarn.lock
※:包管理工具不要混著用!文章來源:http://www.zghlxwxcb.cn/news/detail-791239.html
npm發(fā)布一個包
- 創(chuàng)建與發(fā)布
可以將自己開發(fā)的工具包發(fā)布到npm服務(wù)商,方便自己和其他開發(fā)者使用,操作步驟如下:- 創(chuàng)建文件夾,并創(chuàng)建文件index.js,在文件中聲明函數(shù),使用module.exports暴露
- npm初始化工具包,package.json填寫包的信息(包的名字是唯一的)
- 注冊賬號http://www.npmjs.com/signup
- 激活賬號(一定要激活賬號)
- 修改為官方的官方鏡像(命令行中運行nrm use npm)
- 命令行下npm login填寫相關(guān)用戶信息
- 命令行下npm publish提交包
npm包的更新與刪除
- 更新包
后續(xù)可以對自己發(fā)布的包進(jìn)行更新,操作步驟如下:- 更新包中的代碼
- 測試代碼是否可用
- 修改package.json中的版本號
- 發(fā)布更新
npm publish
- 刪除包
執(zhí)行如下命令刪除包
npm unpublish
刪除包需要滿足一定的條件,https://docs.npmjs.com/policies/unpublish
。 你是包的作者
。發(fā)布小于24小時
。大于24小時后,沒有其他包依賴,并且每周小于300下載量,并且只有一個維護(hù)者
nvm的介紹與使用
nvm全稱Node Version Manager 顧名思義它是用來管理node版本的工具,方便切換不同版本的Node.js文章來源地址http://www.zghlxwxcb.cn/news/detail-791239.html
到了這里,關(guān)于【Node.js學(xué)習(xí) day5——包管理工具】的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!