Gradio全解13——MCP詳解(4)——TypeScript包命令:npm與npx
- 第13章 MCP詳解
- 13.4 TypeScript包命令:npm與npx
- 13.4.1 概念區分
- 1. npm概念與運行邏輯
- 2. npx概念及特點
- 13.4.2 操作示例
- 1. 使用npm執行包
- 2. 使用npx執行包
- 3. 常用npm命令
- 參考文獻
本章目錄如下:
- 《Gradio全解13——MCP詳解(1)——MCP協議介紹與架構組件》
- 《Gradio全解13——MCP詳解(2)——MCP能力協商與通信機制》
- 《Gradio全解13——MCP詳解(3)——TypeScript介紹:特點與適用領域》
- 《Gradio全解13——MCP詳解(4)——TypeScript包命令:npm與npx》
- 《Gradio全解13——MCP詳解(5)——Python包命令:uv與uvx實戰》
- 《Gradio全解13——MCP詳解(6)——MCP服務器》
- 《Gradio全解13——MCP詳解(7)——MCP客戶端》
- 《Gradio全解13——MCP詳解(8)——MCP六大?功能特性》
- 《Gradio全解13——MCP詳解(9)——MCP Inspector》
第13章 MCP詳解
MCP是當前人工智能領域最熱門技術之一,是實現大模型快速應用的捷徑。本章將基于MCP最新方案修訂版:2025-06-18,詳細講解MCP協議細節,并實戰如何通過Gradio構建MCP客戶端與服務器。
13.4 TypeScript包命令:npm與npx
MCP官方使用了以前不常見的兩個命令:TypeScript的npx和Python的uvx,這兩個新型的命令有何過人之處?下面兩節帶讀者仔細了解這兩個命令并實戰,對于常見的npm,主要講述npm與npx的區別和常用基本操作,而對于新興的uv,則列舉了更多的uv和uvx命令操作。
13.4.1 概念區分
npm(Node Package Manager)和npx(Node Package eXecute)在前端開發中都會時常被用到,npm大家相對熟悉(參考3.2節),npx是什么則有一定的迷惑性,和npm有什么關系和區別?下面就分別講述。
1. npm概念與運行邏輯
簡單來說,npm是一個Node包管理器,內置在Node.js中,用于發布開源Node.js項目的在線資源庫,安裝、共享、分發代碼以及管理項目中的依賴關系,通過命令行工具CLI與線上NPM數據庫進行交互,這個數據庫被稱為NPM Register。它的運行邏輯如下:
- 將某個服務器作為代碼倉庫(repository),存放所有需要被共享的代碼。
- 軟件供應商使用
npm publish
把代碼提交到repository上,并分別取名。 - 需要使用這些代碼的人,就把軟件名寫到package.json里,然后運行
npm install
就會下載代碼到本地并局部安裝(項目虛擬環境安裝),全局安裝加符號-g
。 - 下載完的代碼存在node_modules目錄,可以隨意使用,這些代碼被叫做“包”(package)。
當可執行文件通過npm包安裝時,npm會創建鏈接指向它們:
- 本地安裝的鏈接是在本地
./node_modules/.bin/
目錄下創建的。 - 全局安裝會將包安裝到全局的
node_modules
目錄下,并將可執行文件鏈接到系統的$PATH
環境變量中,通常在bin
目錄下創建鏈接,例如:Linux上的/usr/local/bin
或Windows上的%AppData%/npm
。
npm本身并不運行任何軟件包,如果想使用npm運行一個包,有兩種方式:一是必須在package.json文件中指定這個包;另一種是使用bach命令,詳見操作示例。
2. npx概念及特點
npx是一個Node包執行器,npm v5.2.0引入,允許開發者在無需安裝的情況下執行任意Node包,該Node包可以是本地也可以是遠程的。執行本地Node包時,npx先后到環境變量$PATH
和路徑node_modules/.bin
檢查命令是否存在,如果都不存在,則執行遠程Node包。遠程執行時,npx會將Node包下載到一個臨時目錄中,使用以后再刪除。npx也可以理解為少了package.json里一個script而誕生的,它極大地簡化了使用純npm時所需要的大量步驟,讓npm包中的命令行工具和其他可執行文件在使用上變得更加簡單。npx主要特點:
- 臨時安裝可執行依賴包,不用全局安裝,不用擔心長期污染。
- 可以執行依賴包中的命令,安裝完成自動運行。
- 自動加載
node_modules
中依賴包,不用指定$PATH
。 - 可以指定node版本和命令,解決了不同項目使用不同版本命令的問題。
npx安裝方法:
npm install -g npx
npx和npm使用場景:如果項目需要長期使用某個包,那么npm可能是更好的選擇。因為npm能夠將包全局安裝在本地,無需每次使用都下載。而如果需要執行一次性的任務,或者嘗試一些新的包,那么npx可能會更適合。npx可以臨時下載并執行包,而不會留下任何痕跡。
13.4.2 操作示例
下面我們通過npm和npx執行Node包的例子來更具象的了解npm和npx的不同。
1. 使用npm執行包
使用npm執行包有兩種操作方式:
- 將Node包安裝到本地:
npm install package_name
# 通過本地路徑執行Node包
./node_modules/.bin/package_name
- 也可以通過package.json中的scripts命令來執行Node包。
package.json:
{"name": "Project-Name","version": "x.y.z","scripts": {"package-name": "package-name"}
}
執行 scripts:
npm run package-name
2. 使用npx執行包
通過npx則簡單很多,無需安裝Node包就可以通過一個命令執行 Node 包,命令如下:
npx your-package-name
比如從本地或者遠程npm包中運行一個命令,例如:
npx create-react-app my-app # 使用create-react-app快速創建React項目
npx eslint . # 使用本地eslint檢查代碼
關于npx更多信息請參考npx。
總結:npm是一個Node包管理器,npx是一個Node包執行器。Node的執行也可由npm完成,但是必須進行安裝,通過定位本地路徑或者配置scripts來執行。npx則通過一個簡單命令大大簡化了包運行的成本,既可以運行本地包,也可以遠程包,無需安裝包也可以執行,這就有效避免了本地磁盤污染,節省磁盤空間。
3. 常用npm命令
以下是npm的核心命令分類及功能概述:
- 基礎項目管理命令。初始化項目:npm init或npm init -y(跳過交互式問答)創建package.json文件。????
- 依賴管理命令。安裝依賴:npm install:安裝package.json中所有依賴;npm install :安裝指定包(默認添加到dependencies)。????卸載依賴:npm uninstall 。?更新依賴:npm update:更新所有依賴。????npm outdated:列出可更新的包。????查看依賴:npm list。npm ci:使用 package-lock.json快速安裝依賴,適用于CI/CD環境。
- 運行與測試腳本命令。運行腳本:npm run<script>(或npm start),執行package.json中的自定義腳本。測試腳本:npm test<script>。
- 配置管理?。npm config set <key> <value>:修改配置(持久化到
~/.npmrc
),如更換鏡像源:npm config set registry https://registry.npmmirror.com/
。??npm config list:查看當前配置。??
更多命令及示例請參考:NPM使用介紹。
參考文獻
- Python開發人員,請不要低估TypeScript!
- TypeScript“殺瘋了”!60% 到 70%YC 創企用它構建 AI Agent,超越 Python 有戲了?
- NPM vs. NPX,傻傻分不清楚
- uv
- Python 包管理工具核心指令uvx解析
- MCP Introduction