Gradio全解13——MCP詳解(4)——TypeScript包命令:npm與npx

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命令
    • 參考文獻

本章目錄如下:

  1. 《Gradio全解13——MCP詳解(1)——MCP協議介紹與架構組件》
  2. 《Gradio全解13——MCP詳解(2)——MCP能力協商與通信機制》
  3. 《Gradio全解13——MCP詳解(3)——TypeScript介紹:特點與適用領域》
  4. 《Gradio全解13——MCP詳解(4)——TypeScript包命令:npm與npx》
  5. 《Gradio全解13——MCP詳解(5)——Python包命令:uv與uvx實戰》
  6. 《Gradio全解13——MCP詳解(6)——MCP服務器》
  7. 《Gradio全解13——MCP詳解(7)——MCP客戶端》
  8. 《Gradio全解13——MCP詳解(8)——MCP六大?功能特性》
  9. 《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。它的運行邏輯如下:

  1. 將某個服務器作為代碼倉庫(repository),存放所有需要被共享的代碼。
  2. 軟件供應商使用npm publish把代碼提交到repository上,并分別取名。
  3. 需要使用這些代碼的人,就把軟件名寫到package.json里,然后運行npm install就會下載代碼到本地并局部安裝(項目虛擬環境安裝),全局安裝加符號-g
  4. 下載完的代碼存在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執行包有兩種操作方式:

  1. 將Node包安裝到本地:
npm install package_name
# 通過本地路徑執行Node包
./node_modules/.bin/package_name
  1. 也可以通過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的核心命令分類及功能概述:

  1. 基礎項目管理命令。初始化項目:npm init或npm init -y(跳過交互式問答)創建package.json文件。????
  2. 依賴管理命令。安裝依賴:npm install:安裝package.json中所有依賴;npm install :安裝指定包(默認添加到dependencies)。????卸載依賴:npm uninstall 。?更新依賴:npm update:更新所有依賴。????npm outdated:列出可更新的包。????查看依賴:npm list。npm ci:使用 package-lock.json快速安裝依賴,適用于CI/CD環境。
  3. 運行與測試腳本命令。運行腳本:npm run<script>(或npm start),執行package.json中的自定義腳本。測試腳本:npm test<script>。
  4. 配置管理?。npm config set <key> <value>:修改配置(持久化到 ~/.npmrc),如更換鏡像源:npm config set registry https://registry.npmmirror.com/。??npm config list:查看當前配置。??

更多命令及示例請參考:NPM使用介紹。

參考文獻

  1. Python開發人員,請不要低估TypeScript!
  2. TypeScript“殺瘋了”!60% 到 70%YC 創企用它構建 AI Agent,超越 Python 有戲了?
  3. NPM vs. NPX,傻傻分不清楚
  4. uv
  5. Python 包管理工具核心指令uvx解析
  6. MCP Introduction

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/87000.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/87000.shtml
英文地址,請注明出處:http://en.pswp.cn/web/87000.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

《推客小程序全鏈路開發指南:從架構設計到裂變運營》

在移動互聯網流量紅利逐漸消退的今天&#xff0c;如何低成本獲客成為企業營銷的核心痛點。推客小程序作為一種基于社交關系的裂變營銷工具&#xff0c;正成為企業突破增長瓶頸的利器。本文將為您全面解析推客小程序的開發定制全流程&#xff0c;幫助您打造專屬的社交裂變營銷平…

中鈞科技參加中亞數字經濟對話會,引領新疆企業數字化新征程!

6月27 日&#xff0c;烏魯木齊成為數字經濟領域的焦點&#xff0c;中國新疆 - 中亞國家數字經濟和數字貿易企業對話會在此盛大舉行。 來自中亞國家及新疆數字經濟領域的100 余位核心代表齊聚一堂&#xff0c;圍繞數字經濟時代的機遇、挑戰與策略展開深度探討。 本次對話會由新…

k8s一鍵部署tongweb企業版7049m6(by why+lqw)

聲明 1.此貼僅供參考&#xff0c;請根據自身需求在測試環境測試和修改。 安裝準備 1.獲取對應的安裝包和授權,并將授權和安裝包放在同一個目錄下 2.docekr已配置遠程倉庫 3.提前拉取jdk的鏡像&#xff08;這里配置了使用openjdk:8&#xff09; 安裝 將以下內容復制到k8s_…

Qt 與 Halcon 聯合開發六:基于海康SDK設計完整的相機類【附源碼】

在現代工業自動化、機器人視覺、等領域&#xff0c;相機模塊的作用至關重要。通過相機模塊采集到的圖像數據&#xff0c;我們能夠進行一系列的圖像處理和分析。為了高效地控制相機和處理圖像&#xff0c;本篇文章將介紹如何使用Qt和Halcon聯合開發一個相機模塊&#xff0c;幫助…

第7篇:Gin模板引擎——服務端頁面渲染

作者:GO兔 博客:https://luckxgo.cn 分享大家都看得懂的博客 引言 在Web開發中&#xff0c;服務端頁面渲染(SSR)依然是構建動態網頁的重要方式。Gin框架雖然以API開發見長&#xff0c;但也內置了強大的模板引擎支持&#xff0c;基于Go標準庫的html/template包實現。本文將深入…

RagFlow 源碼部署啟動指南

一、環境準備 1. 安裝 uv 和 pre-commit 如果已安裝&#xff0c;可跳過。推薦使用官方方式安裝&#xff0c;避免報錯&#xff1a; pipx install uv pre-commit export UV_INDEXhttps://mirrors.aliyun.com/pypi/simple安裝報錯 使用清華源安裝&#xff1a; pipx install uv…

【Python基礎】12 閑談分享:Python用于無人駕駛的未來

引言&#xff1a;一個程序員的自動駕駛夢想 還記得2016年的那個秋天&#xff0c;我第一次坐進特斯拉Model S的駕駛座&#xff0c;體驗Autopilot功能。當方向盤開始自己轉動&#xff0c;車輛在高速公路上自動跟隨前車時&#xff0c;我的內心涌起了一種奇妙的感覺——這不就是我…

為什么js是單線程?

js單線程&#xff0c;同一時間只能做一件事 。js的單線程 主要與它的用途有關。作為瀏覽器腳本語言&#xff0c;js的主要用途是與用戶互動&#xff0c;以及操作DOM。這決定了它只能是單線程&#xff0c;否則會帶來很復雜的同步問題。如果js同時有兩個線程&#xff0c;一個線程在…

DVWA靶場通關筆記-文件包含(Medium級別 9種滲透方法)

目錄 一、文件包含 1、原因 2、危害 3、防范措施 二、代碼審計&#xff08;Medium級別&#xff09; 1、滲透準備 &#xff08;1&#xff09;配置php.ini &#xff08;2&#xff09;file1.php &#xff08;3&#xff09;file2.php &#xff08;4&#xff09;file3.php…

飛云翻倍布林(翻倍密碼系統四線布林版)雙安全系統+均價趨勢指標+日線周線MACD,組合操盤技術圖文分享

如上圖組合操盤套裝指標&#xff0c;主圖指標-翻倍密碼系統四線布林版-飛云翻倍布林。副圖指標1-均價趨勢指標&#xff0c;跟蹤市場均價走勢和趨勢&#xff1b;副圖指標2-日線周線MACD指標&#xff0c;跟蹤日線和周線兩個級別的MACD多空走勢以及共振與否。 主圖指標-飛云翻倍布…

《匯編語言:基于X86處理器》第6章 條件處理(1)

本章向程序員的匯編語言工具箱中引入一個重要的內容&#xff0c;使得編寫出來的程序具備作決策的功能。幾乎所有的程序都需要這種能力。首先&#xff0c;介紹布爾操作&#xff0c;由于能影響CPU狀態標志&#xff0c;它們是所有條件指令的核心。然后&#xff0c;說明怎樣使用演繹…

【分治思想】歸并排序 與 逆序對

歸并排序 歸并排序是一種分治算法&#xff0c;怎么分&#xff0c;怎么治&#xff1f; 分&#xff1a;通過遞歸不斷把數組分成兩半&#xff0c;直到每個子數組只剩 1 個元素&#xff08;天然有序&#xff09;治&#xff1a;把兩個已經排好序的子數組合并成一個有序數組。 把問…

SQL參數化查詢:防注入與計劃緩存的雙重優勢

在數據庫操作中&#xff0c;SQL參數化查詢&#xff08;Parameterized Queries&#xff09;是一種非常有效的技術&#xff0c;它不僅可以防止SQL注入攻擊&#xff0c;還可以提高數據庫查詢的效率&#xff0c;尤其是在與計劃緩存&#xff08;Query Plan Caching&#xff09;結合使…

【你怕一E1】- 孰輕孰重如何斷-組合問題的多種情形

摘要 本視頻講解了組合問題的多種情形,包括多選一、多選二、多選三以及分隊問題的解題方法。首先介紹了從不同人數中選人的不同選擇方式,如一百人中選一人有一百種選擇。隨后,詳細講解了有序思考方法在多選二問題中的應用,通過選隊長的方式列舉不同組合情況,并歸納出選擇規…

nginx反向代理的bug

nginx反向代理的bug 問題呈現 當我們配置反向代理的時候查詢error.log的時候我們發現以下的問題 2025/06/29 08:38:47 [error] 7#7: *2 open() “/usr/share/nginx/html/payed/notify” failed (2: No such file or directory), client: 192.168.98.1, server: localhost, r…

MyBatis 動態 SQL 與緩存機制深度解析

在Java持久層技術體系中&#xff0c;MyBatis憑借其靈活的SQL映射和強大的動態SQL能力&#xff0c;成為企業級應用開發的首選框架。本文從動態SQL核心語法、緩存實現原理、性能優化及面試高頻問題四個維度&#xff0c;結合源碼與工程實踐&#xff0c;系統解析MyBatis的核心特性與…

Nuxt 3 中實現跨組件通信方式總結:使用 Pinia、Provide/Inject 或 Props

在開發復雜的 Web 應用時&#xff0c;跨組件通信是一個常見的需求。Nuxt 3 提供了多種方式來實現這一點&#xff0c;包括使用狀態管理工具&#xff08;如 Pinia&#xff09;、Vue 的 provide/inject 機制以及傳統的 props 傳遞。本文將詳細介紹這三種方法&#xff0c;并通過一個…

Java ArrayList 擴容機制

一、ArrayList 簡介 ArrayList 是 Java 集合框架中基于數組實現的可變長度列表&#xff0c;其核心特性是&#xff1a; 支持隨機訪問&#xff08;通過索引&#xff09;支持動態擴容插入/刪除效率較低&#xff08;非尾部操作&#xff09; 二、底層數據結構 // JDK 11 transien…

C++面試題精講系列之數組排序

數組排序是我們經常遇到的筆試題目&#xff0c;給大家盤一下這題到底想考察什么&#xff1f; // 考題如下 void main() {int arr[4] {26,28,24,11};// 請實現一個sortArray函數&#xff0c;對數組arr進行從小到大排序 }考點1&#xff1a;數組做函數參數如何傳遞參&#xff1f;…

Windows10/11 輕度優化 純凈版,12個版本!

系統介紹 鏡像包均基于微軟官方原版系統精心制作&#xff0c;確保系統的原汁原味與穩定性。Windows 10/11&#xff0c;都集成了最新的補丁。版本選對&#xff0c;一鍵安裝到位&#xff0c;全自動無人值守安裝模式。 系統特點 系統進行優化提供了12個系統版本集成了運行庫、…