node、npm等相關(guān)概念
node
和 npm
相關(guān)的名詞很多释液,比較容易混淆全释。
下面對這些名詞做個統(tǒng)一梳理
-
node
:一個基于 Chrome V8 引擎的 JavaScript 運行時;提供了 JavaScript 的運行環(huán)境误债〗可以直接到 node 官網(wǎng)下載安裝 -
nvm
:node.js 版本管理工具;不同項目可能需要不同版本的 node寝蹈;可以使用 nvm 來管理 node.js 版本 -
npm
:node.js 包管理工具李命;用來管理 node.js 中的第三方插件;新版本的 node 在安裝的時候箫老,會自動安裝對應(yīng)版本的 npm -
nrm
:npm 源的管理工具项戴,可以用來方便的切換 npm 源 -
cnpm
:使用的是淘寶的源。用法跟 npm 完全一致槽惫。cnpm 經(jīng)常會有問題,所以在很多地方不推薦使用 -
yarn
:經(jīng)過重新設(shè)計的嶄新的 npm 客戶端辩撑;運行速度顯著提升界斜,整個安裝時間比 npm 少。一般推薦使用 yarn 代替 npm -
npx
:一個 npm 包執(zhí)行器合冀。我們可以使用 npx 來執(zhí)行各種命令各薇。
使用 nvm 管理 node.js 版本
npm
參考:npm常用命令操作
使用 nrm 管理 npm 源
當使用官方 npm 源安裝各種包比較慢的時候,建議修改 npm 源地址
npm 相關(guān)參考:npm常用命令操作
推薦使用 nrm 管理 npm 源
nrm 是專門用來管理和快速切換私人配置的 registry
推薦全局安裝
npm install nrm -g
常用命令
-
nrm ls
:查看默認配置君躺,帶*
號即為當前使用的配置 -
nrm current
:查看當前使用的是哪個源 -
nrm use [源的別名]
:切換到某個源 -
nrm add [源的別名] [源的地址]
:添加私有源峭判。eg:nrm add qihoo http://registry.npm.360.org
-
nrm test [源的別名]
:測試某個源 -
nrm del [源的別名]
:刪除某個源
cnpm
npm 安裝插件是從國外服務(wù)器下載,受網(wǎng)絡(luò)影響大棕叫,可能出現(xiàn)異常林螃。
淘寶團隊復(fù)制了一個完成的 npmjs.org 鏡像,用此代替官方版本(只讀)俺泣,同步頻率目前為 10分鐘 一次以保證盡量與官方服務(wù)同步疗认。即: cnpm
cnpm 跟 npm 用法完全一致完残,只是在執(zhí)行命令時將 npm 改為 cnpm
推薦全局安裝cnpm
npm install -g cnpm --registry=https://registry.npm.taobao.org
安裝完成后,可以使用命令 cnpm -v
檢查是否安裝成功横漏。
如果能正常顯示版本號,表示已安裝成功缎浇。如果顯示 不是內(nèi)部或者外部命令 ,則需要手動將安裝目錄添加到系統(tǒng)變量中
yarn
yarn 是經(jīng)過重新設(shè)計的嶄新的 npm 客戶端二蓝;運行速度顯著提升,整個安裝時間比 npm 少
像 npm 一樣亡笑, yarn 使用本地緩存侣夷。與 npm 不同的是仑乌, yarn 無需互聯(lián)網(wǎng)連接就能安裝本地緩存的依賴項百拓,它提供了離線模式晰甚。這個功能在2012年的 npm 項目中就被提出來過衙传,但一直沒有實現(xiàn)。
一般推薦使用 yarn 代替 npm
運行以下命令即可安裝 yarn
npm install yarn -g
yarn 和 npm 命令對比如下
npm | yarn | 描述 |
---|---|---|
npm init |
yarn init |
初始化項目 |
npm install |
yarn 厕九、yarn install
|
安裝依賴 |
npm install xxx 蓖捶、npm install xxx --save 扁远、npm install xxx -S
|
yarn add xxx |
安裝某依賴,寫入dependencies |
npm install xxx --save-dev 并闲、npm install xxx -D
|
yarn add xxx --dev 谷羞、yarn add xxx -D
|
安裝某依賴,寫入devDependencies |
npm install xxx -g |
yarn global add xxx |
全局安裝某依賴 |
npm update xxx |
yarn upgrade xxx |
更新某依賴 |
npm uninstall xxx |
yarn remove xxx |
刪除某依賴 |
npm cache clean |
yarn cache clean |
清除全局緩存依賴包 |
npm run dev |
yarn dev 湃缎、yarn run dev
|
執(zhí)行 dev 命令 |
npx
npx 是 npm v5.2.0 引入的一條命令( npx ),是一個 npm 包執(zhí)行器九巡。我們可以使用 npx 來執(zhí)行各種命令靠瞎。
主要有以下特點:
- 臨時安裝可執(zhí)行依賴包求妹,不用全局安裝佳窑,不用擔心長期的污染制恍。
- 可以執(zhí)行依賴包中的命令神凑,安裝完成自動運行。
- 自動加載
node_modules
中依賴包鹃唯,不用指定$PATH
瓣喊。 - 可以指定 node 版本、命令的版本藻三,解決了不同項目使用不同
npx 執(zhí)行流程如下:
- 到
node_modules/.bin
路徑檢查對應(yīng)的命令是否存在,找到之后執(zhí)行棵帽; - 沒有找到,就去環(huán)境變量
$PATH
里面弟晚,檢查對應(yīng)命令是否存在逾苫,找到之后執(zhí)行; - 還是沒有找到,自動下載一個臨時的依賴包最新版本在一個臨時目錄铅搓,然后再運行命令,運行完之后刪除,不污染全局環(huán)境指煎。
安裝過程很簡單,直接運行以下命令即可
npm install npx -g
npx 使用場景
- 執(zhí)行本地命令
比如項目下安裝了 mocha 威始,可以直接用 npx 執(zhí)行
npx mocha --version
- 一次性執(zhí)行命令
比如以下命令像街,npx 將 create-react-app 下載到一個臨時目錄晋渺,使用以后再刪除
不用全局安裝 create-react-app 脓斩,運行后不會污染全局環(huán)境
npx create-react-app myApp
- 切換 node 版本
要運行的命令不兼容當前的 node 版本時,可使用 npx 切換版
npx 的 -p 選項指定要安裝的包随静,并將其添加到正在運行的 $PATH 中
npx node@12 -v
- 開啟靜態(tài)服務(wù)器
使用 http-server 或者 serve 開啟靜態(tài)服務(wù)器。方便本地預(yù)覽打包后的項目
npx http-server # 默認返回根目錄下index.html
npx http-server -p 3000 # 也可以直接指定端口