npm與yarn介紹與常用命令
NPM介紹
-
npm
是node.js
的包管理器,用於node
外掛管理(包括安裝,解除安裝,管理依賴等) -
cnpm
是淘寶團隊分享的使用國內映象來代替國外伺服器 -
引數
-
-g
引數- 全域性安裝(
global
),可以在命令列下直接使用 - 可以通過
npm root -g
檢視全域性安裝的資料夾位置
- 全域性安裝(
-
-S
引數--save
安裝包資訊將加入到dependencies
(生產階段的依賴) -
-D
引數--save--dev
安裝包資訊將加入到devDependencies
(開發階段的依賴) -
i
引數
-
-
npm init -f
配置檔案初始化 -
npm -v
檢視npm
版本資訊
使用 npm 命令安裝模組
npm 安裝 Node.js 模組語法格式如下:
$ npm install <Module Name>
以下例項,我們使用 npm 命令安裝常用的 Node.js web框架模組 express:
$ npm install express
安裝好之後,express 包就放在了工程目錄下的 node_modules 目錄中,因此在程式碼中只需要通過 require('express') 的方式就好,無需指定第三方包路徑。
var express = require('express');
全域性安裝與本地安裝
npm 的包安裝分為本地安裝(local)、全域性安裝(global)兩種,從敲的命令列來看,差別只是有沒有-g而已,比如
npm install express # 本地安裝
npm install express -g # 全域性安裝
如果出現以下錯誤:
npm err! Error: connect ECONNREFUSED 127.0.0.1:8087
解決辦法為:
$ npm config set proxy null
本地安裝
-
- 將安裝包放在
./node_modules
下(執行npm
命令時所在的目錄),如果沒有node_modules
目錄,會在當前執行npm
命令的目錄下生成node_modules
目錄。
- 將安裝包放在
-
- 可以通過
require()
來引入本地安裝的包。
- 可以通過
全域性安裝
-
-
將安裝包放在
/usr/local
node
的安裝目錄。Windows
下的全域性安裝的預設地址C:\Users\XXX\AppData\Roaming\npm
-
-
- 可以直接在命令列裡使用。
如果你希望具備兩者功能,則需要在兩個地方安裝它或使用npm link。
如何改變npm全域性安裝路徑?
-
使用命令的方式
npm config set prefix '路徑'
-
修改
npmrc
檔案npmrc
在node\node_modeules\npm
下npmrc
檔案就是記錄npm
全域性安裝的路徑。修改這個檔案就可以更改npm
的全域性安裝路徑。注意:npmrc
中設定的路徑必須和環境變數中的路徑保持一致
接下來我們使用全域性方式安裝express
$ npm install express -g
安裝過程輸出如下內容,第一行輸出了模組的版本號及安裝位置。
[email protected] node_modules/express
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
└── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected])
檢視安裝資訊
你可以使用以下命令來檢視所有全域性安裝的模組:
$ npm list -g
├─┬ [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ ├─┬ [email protected]
│ │ └── [email protected]
│ ├─┬ [email protected]
│ │ └── [email protected]
……
如果要檢視某個模組的版本號,可以使用命令如下:
$ npm list grunt
projectName@projectVersion /path/to/project/folder
└── [email protected]
使用 package.json
package.json
位於模組的目錄下,用於定義包的屬性。接下來讓我們來看下express
包的package.json
檔案,位於 node_modules/express/package.json
Package.json 屬性說明
- name - 包名。
- version - 包的版本號。
- description - 包的描述。
- homepage - 包的官網 url 。
- author - 包的作者姓名。
- contributors - 包的其他貢獻者姓名。
- dependencies - 依賴包列表。如果依賴包沒有安裝,npm 會自動將依賴包安裝在 node_module 目錄下。
- repository - 包程式碼存放的地方的型別,可以是 git 或 svn,git 可在 Github 上。
- main - main 欄位指定了程式的主入口檔案,require('moduleName') 就會載入這個檔案。這個欄位的預設值是模組根目錄下面的 index.js。
- keywords - 關鍵字
解除安裝模組
$ npm uninstall express
解除安裝後,你可以到 /node_modules/ 目錄下檢視包是否還存在,或者使用以下命令檢視:
$ npm ls
更新模組
$ npm update express
搜尋模組
$ npm search express
Yarn
Yarn介紹
Yarn
就是一個類似於npm
的包管理工具,它是由facebook
推出並開源。與npm
相比,yarn
有著眾多的優勢,主要的優勢在於:速度快、離線模式、版本控制。
Yarn 換源
使用yarn
來安裝依賴時的體驗比npm
要好很多;但是偶爾也會存在yarn
源倉庫包下載不穩定的情況
// 檢視 yarn 配置
yarn config get registry
//或者
yarn config list
> registry: 'https://registry.yarnpkg.com'
一 臨時修改
yarn add 軟體名 --registry https://registry.npm.taobao.org/
二 全域性修改,安裝淘寶映象
yarn config set registry https://registry.npm.taobao.org
三 使用第三方軟體快速修改、切換yarn
映象源
yrm(YARN registry manager) 不僅可以快速切換映象源,還可以測試自己網路訪問不同源的速度
# 安裝 yrm
npm install -g yrm
# 列出當前可用的所有映象源
yrm ls
// npm ----- https://registry.npmjs.org/
// cnpm ---- http://r.cnpmjs.org/
// taobao -- https://registry.npm.taobao.org/
// nj ------ https://registry.nodejitsu.com/
// rednpm -- http://registry.mirror.cqupt.edu.cn
// skimdb -- https://skimdb.npmjs.com/registry
// yarn ---- https://registry.yarnpkg.com
# 使用淘寶映象源
yrm use taobao
# 測試訪問速度
yrm test taobao
YARN命令
- 版本檢視
yarn -v
- 建立新工程
yarn init # 初始化專案,生成 package.json 檔案(需要手動選擇配置)
- 新增依賴包
# 通過 yarn add 新增依賴會更新 package.json以及 yarn.lock 檔案
# 開發環境
yarn add <PackageName> # 依賴會記錄在 package.json 的 dependencies 下 開發環境
# 生產環境
yarn add <packageName> --dev # 依賴會記錄在 package.json 的 devDependencies 下 生產環境
- 安裝全域性依賴包
yarn global add <PackageName>
- 更新依賴包
yarn upgrade # 升級所有依賴項,不記錄在package.json中
yarn upgrade <PackageName> # 升級指定包
yarn upgrade --latest # 忽略版本規則,升級到最新版本,並且更新 package.json
- 移除依賴包
yarn remove <PackageName>
- 安裝
package.json
中的所有檔案
yarn
或者yarn install
yarn install # 或者yarn在node_modules目錄安裝package.json中列出的所有依賴
yarn install --force # 強制下載安裝 如果 node_modules 中有相應的包則不會重新下載 --force 可以強制重新下載安裝
- 執行指令碼
yarn run
用來執行在 package.json 中 scripts 屬性下定義的指令碼
// package.json
{
"scripts": {
"dev": "node app.js",
"start": "node app.js"
}
}
yarn run dev # yarn 執行 dev 對應的指令碼 node app.js
- 顯示某個包資訊
yarn info <packageName> # 可以用來檢視某個模組的最新版本資訊
yarn info <packageName> --json # 輸出 json 格式
yarn info <packageName> readme # 輸出 README 部分
- 列出專案的所有依賴
yarn list # 列出當前專案的依賴
yarn global list # 列出全域性專案的依賴
- 管理 yarn 配置檔案
yarn config
yarn config set key value # 設定
yarn config get key # 讀取值
yarn config delete key # 刪除
yarn config list # 顯示當前配置
yarn config set registry https://registry.npm.taobao.org # 設定淘寶映象
- 快取
yarn cache
yarn cache list # 列出已快取的每個包
yarn cache dir # 返回 全域性快取位置
yarn cache clean # 清除快取
- Yarn 獨有的命令
yarn licenses ls # 允許你檢查依賴的許可資訊
yarn licenses generate # 自動建立依賴免責宣告 license
yarn why taco # 檢查為什麼會安裝 taco,詳細列出依賴它的其他包
yarn why vuepress # 檢查為什麼會安裝 vuepress,詳細列出依賴它的其他包
修改Yarn的全域性安裝和快取位置
-
修改全域性安裝位置
-
改變 yarn 全域性安裝位置
yarn config set global-folder <你的磁碟路徑>
你會在你的使用者目錄找到
.yarnrc
的檔案,開啟它,找到global-folder
-
-
改變 yarn 快取位置
yarn config set cache-folder <你的磁碟路徑>
在我們使用全域性安裝包的時候,會在D:\Software\yarn\global
下生成 node_modules\.bin
目錄
我們需要將D:\Software\yarn\global\node_modules\.bin
整個目錄 新增到系統環境變數中去,否則通過yarn
新增的全域性包 在命令列中是找不到的。
檢查當前yarn
的bin
的位置
yarn global bin
檢查當前yarn
的全域性安裝位置
yarn global dir