javascript - 如何列出 npm 使用者安裝的套件?
我如何只列出 npm 中用戶安裝的/環境套件 only?
當我執行 npm -g list 時,它會輸出每個套件及其相依性。但我希望看到的是安裝在 當前 工作專案或環境中的套件。
答案#1
npm list -g --depth=0 --json
- npm:Node.js 的套件管理命令列工具
- list -g:顯示用戶資料夾中所有套件的樹狀結構(如果沒有
-g選項,它只會顯示當前目錄的套件) - --depth 0/--depth=0:避免在樹狀檢視中包含每個套件的依賴項
- --json(可選):這將輸出一個 JSON 物件,其中 dependencies 欄位包含用戶安裝的套件。
答案#2
你可以使用以下方式獲取所有全域安裝模組的列表:
ls `npm root -g`
答案#3
截至2015年12月13日
雖然我覺得被接受的答案是百分之百正確且有用的,但我希望根據我自己的經驗稍作擴充,也希望能對其他人有幫助。(在這裡,我將套件和模組這兩個術語互換使用)
作為對這個問題的回答,是的,被接受的答案是:
npm list -g --depth=0
您可能希望檢查特定模組是否已在全球範圍內安裝,在類 Unix 系統上或當可用 grep 時特別有用。這在檢查您正在使用的模組版本時尤其有用(全球安裝;如果檢查本地模組,只需移除 -g 標誌):
npm list -g --depth=0 | grep <module_name>
如果你想查看特定模組的所有可用(遠端)版本,請執行:
npm view <module_name> versions
注意,versions 是複數形式。這將給你完整的版本列表可供選擇。
查看最新的遠端版本:
npm view <module_name> version
注意,version 是單數。
要找出哪些套件需要更新,您可以使用:
npm outdated -g --depth=0
要更新全域套件,您可以使用
npm update -g <package>
要更新所有全域套件,您可以使用:
npm update -g
(不過,對於 npm 版本低於 2.6.1 的用戶,請也參考此連結,因為有一個建議用於全域更新所有套件的特殊腳本。)
上述命令應該適用於 NPM 版本 1.3.x、1.4.x、2.x 和 3.x。
答案#4
列出帶有友好圖形介面的 NPM 套件!
這是我個人偏好的方式,也可能適合其他人,也可能在簡報或會議中有所幫助。
使用 npm-gui,你可以更好地可視化地列出本地和全域套件。
你可以在這裡找到這個包裹
- npm-gui (npm)
- npm-gui (GitHub)
執行以下內容
// Once
npm install -g npm-gui
cd c:\your-prject-folder
npm-gui localhost:9000
然後在瀏覽器中打開 http:\localhost:9000
答案#5
對於專案依賴項使用:
npm list --depth=0
若要使用全域依賴項,請使用:
npm list -g --depth=0
答案#6
使用:
npm ls
npm list 只是 npm ls 的別名。
欲取得更多資訊,請使用:
npm la
npm ll
你可以總是在最後設置 --depth=0 來獲取第一層深度。
npm ls --depth=0
你可以檢查開發和生產套件。
npm ls --only=dev
npm ls --only=prod
以 json 格式顯示資訊
npm ls --json=true
預設值是 false
npm ls --json=false
你可以堅持使用長格式來顯示擴展資訊。
npm ls --long=true
你可以顯示可解析的輸出,而不是樹狀視圖。
npm ls --parseable=true
你可以列出全局安裝前綴中的套件,而不是列出當前專案中的套件。
npm ls --global=true
npm ls -g // shorthand
你可以在這裡找到完整的文件。
答案#7
截至2021年底,幾乎沒有明顯的方法來做到這一點。儘管其他所有答案仍然可行,我認為除了提供一個更明確和完整的可能命令清單之外,也需要更新,而既然我正在做這件事,我還為需要的人添加了一些其他常用命令(安裝、卸載等)。
Bare command
npm list
'ls' is an alias of list
npm ls
Don't show dependencies
npm list --depth=0
Global modules
npm list -g --depth=0
More info
npm la
npm ll
Show particular environment packages
npm ls --only=dev
npm ls --only=prod
Parseable view (tree view)
npm ls --parseable=true
關於這個問題,Node.js 的文件其實解釋得相當清楚。這是一個主要指令的彙總清單。
在開始之前,注意:
所有指令將在已安裝的模組列表上本地執行。若要在全域層級執行,只需在敘述末尾加上-g標誌。
列出已安裝的依賴命令
查看所有已安裝 npm 套件的版本,包括它們的相依套件。
npm list >>> /Users/joe/dev/node/cowsay └─┬ [email ├── [email ├─┬ [email │ ├── [email │ └── [email ├─┬ [email │ ├── [email │ └─┬ [email │ └── [email └── [email僅取得您的頂層套件
npm list --depth=0透過指定套件名稱來取得特定套件的版本。
npm list <package-name>查看 npm 存儲庫中該套件的最新可用版本
npm view <package-name> version使用
@語法安裝舊版本的 npm 套件npm install <package>@<version> npm install [email列出一個套件的所有先前版本
npm view cowsay versions [ '1.0.0', '1.0.1', '1.0.2', '1.0.3', '1.1.0', '1.1.1', '1.1.2', '1.1.3', .... ]
更新所有 Node.js 依賴項
安裝新的次要或修補版本
npm update安裝新的次要或修補版本,但不要更新檔案 package.json
npm update --no-save要發現套件的新版本,這會給你一個清單,列出一個很久沒有更新的儲存庫中的一些過時套件
npm outdated
其中一些更新是重大版本。執行 npm update 不會更新這些版本。重大版本永遠不會以這種方式更新,因為它們(按照定義)會引入重大變更,而 npm 希望為你避免麻煩。
要將所有套件更新到新的主要版本,請全域安裝 npm-check-updates 套件:
npm install -g npm-check-updates
ncu -u
這將升級 package.json 文件中所有版本提示,包括 dependencies 和 devDependencies,讓 npm 可以安裝新的主要版本
開發依賴
安裝在開發依賴中。
npm install <package-name> -D
npm install <package-name> --save-dev # The same as above
避免在生產環境中安裝那些開發依賴
npm install --production
卸載 npm 套件
npm uninstall <package-name>
npm uninstall -g <package-name> # Globally uninstall
卸載套件並移除 package.json 文件中的引用
npm uninstall <package-name> -S npm uninstall <package-name> --save # The same as above
一些帶有全域標誌的指令範例。
npm list -g
npm list --depth=0 -g
npm list <package-name> -g
npm view <package-name> version -g
附加指令
- 由 @prosti 回答
文件資料
- 查找已安裝的 npm 套件版本
- 安裝較舊版本的 npm 套件
- 將所有 Node.js 依賴更新到最新版本
- 使用 npm 的語義化版本控制
- 卸載 npm 套件
- npm 全域或本地套件
- npm 依賴和開發依賴
- npx Node.js 套件執行器目錄
答案#8
>= v7.0.0:
npm ls -g
< v7.0.0:
npm ls -g --depth=0
參考:
npm ls預設只會列出第一層的依賴。你可以使用--depth=<n>設定特定層級來列出更多樹狀結構,或者使用--all列出所有依賴。
欲了解最新版本,請參見 npm 文件:npm-ls, depth
答案#9
一種方法可能是使用以下方式找到模組的根目錄:
npm root
輸出:
/Users/me/repos/my_project/node_modules
然後列出該目錄...
ls /Users/me/repos/my_project/node_modules
輸出:
grunt grunt-contrib-jshint
在這種情況下,使用者安裝的套件是 grunt 和 grunt-contrib-jshint。
答案#10
Node.js 有 本地 模組和 全域 模組的概念。
本地模組位於當前專案目錄中。
全域模組通常位於使用者的主目錄,不過我們可以更改全域模組所在的路徑。
- 列出當前目錄中的本地模組:
npm list - 列出全域模組:
npm list --global或npm list --g/它將列出所有頂層模組及其依賴 - 僅列出頂層(已安裝 模組)的全域模組:
npm list -g --depth=0


