繁体   English   中英

如何列出 npm 用户安装的软件包

[英]How to list npm user-installed packages

如何在 npm 中列出用户安装/环境 package?

当我执行npm -g list时,它会输出每个 package 及其依赖项。 相反,我希望看到安装在当前工作项目或环境中的包。

npm list -g --depth=0
  • npm : Node 包管理器命令行工具
  • list -g :显示在用户文件夹中找到的每个包的树(没有-g选项它只显示当前目录的包)
  • --depth 0 / --depth=0 :避免在树视图中包含每个包的依赖项

您可以使用以下命令获取所有全局安装模块的列表:

ls `npm root -g`

截至 2015 年 12 月 13 日

npm 列表图

虽然我发现接受的答案 100% 正确且有用,但希望根据我自己的经验对其进行一些扩展,并希望也能造福他人。 (这里我交替使用术语包和模块)

在回答这个问题时,是的,接受的答案是:

npm list -g --depth=0

您可能希望检查在 *nix 系统上/当 grep 可用时全局安装的特定模块。 这在检查您正在使用的模块的版本时特别有用(全局安装,如果检查本地模块,只需删除 -g 标志):

npm list -g --depth=0 | grep <module_name>

如果您想查看特定模块的所有可用(远程)版本,请执行以下操作:

npm view <module_name> versions

注意, versions是复数。 这将为您提供可供选择的版本的完整列表。

对于最新的远程版本:

npm view <module_name> version  

注意,版本是单数。

要找出需要更新的软件包,您可以使用

npm outdated -g --depth=0

要更新全局包,您可以使用

npm update -g <package>

要更新所有全局包,您可以使用:

npm update -g

(但是,对于低于 2.6.1 的 npm 版本,请参阅此链接,因为有一个特殊的脚本建议用于全局更新所有包)。

上述命令应该适用于 NPM 版本 1.3.x、1.4.x、2.x 和 3.x

列出带有一些友好 gui 的 NPM 包!

这是我个人更喜欢的,可能对其他人也是如此,它也可能在演示或会议期间有所帮助。

使用npm-gui ,您可以以更好的可视化方式列出本地和全局包。

您可以在以下位置找到包裹

运行以下

//Once
npm install -g npm-gui

cd c:\your-prject-folder
npm-gui localhost:9000

然后在http:\\localhost:9000打开浏览器

npm-gui

对于本地模块:

npm list --depth=0

对于全球模块:

npm list -g --depth=0

对于项目依赖项,请使用:

npm list --depth=0

对于全局依赖项,请使用:

npm list -g --depth=0
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

您可以在此处找到完整的文档。

Node 有本地模块和全局模块的概念

本地模块位于当前项目目录中。

全局模块通常位于用户的主目录,但我们可以更改全局模块所在的路径。

  1. 列出当前目录中的本地模块: npm list
  2. 列出全局模块: npm list --global OR npm list --g // 它将列出所有顶级模块及其依赖项
  3. 仅列出顶级(已安装的模块)全局模块: npm list -g --depth=0

一种方法可能是使用以下命令查找模块的根目录:

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

我使用npm -g outdated --depth=0列出过时的版本
在全球空间。

查看已安装的所有软件包的列表。

$ npm ls --parseable | awk '{gsub(/\/.*\//,"",$1); print}'| sort -u

显示可解析的 npm 包列表https://docs.npmjs.com/cli/ls#parseable

你可以试试NPM 桌面管理器NPM 桌面管理器

只需单击一下,您就可以在devglobal状态下安装/卸载包。

Node_modules 包含用户安装的软件包,因此将目录更改为 node_modules 并列出项目。 核心模块lib/文件夹的节点源代码中定义。

Example:

     example@example:~/:~/node_modules$ ls
     express  maxmind-native  node-whois  socket.io  ua-parser-js
     geoip    mongoskin       pdfkit      tail       zeromq
     maxmind  nodemailer      request     ua-parser  zmq

到 2021 年底,几乎没有明显的方法可以做到这一点,尽管所有其他答案仍然有效,我认为除了可能的更定义和完整的命令列表之外,还需要更新,而当我在它的时候,我添加了一些需要它的其他常用命令(安装、卸载等)

# bare command
npm list
# ls is an alias of list
npm ls 
# don't shows dependencies
npm list --depth=0
# Global modules
npm list -g --depth=0
# More info
npm la    
npm ll
# show particual env packages
npm ls --only=dev
npm ls --only=prod
# parseable view (tree view)
npm ls --parseable=true

Node.js 文档实际上对此事进行了很好的解释,这是主要命令的集合列表。

开始之前注意:


所有命令都将在本地运行已安装模块的列表。 为了运行全局级别,只需在语句末尾添加一个-g标志。


列出已安装的依赖命令

  1. 查看所有已安装 npm 包的版本,包括它们的依赖项。

     ❯ npm list >>> /Users/joe/dev/node/cowsay └─┬ cowsay@1.3.1 ├── get-stdin@5.0.1 ├─┬ optimist@0.6.1 │ ├── minimist@0.0.10 │ └── wordwrap@0.0.3 ├─┬ string-width@2.1.1 │ ├── is-fullwidth-code-point@2.0.0 │ └─┬ strip-ansi@4.0.0 │ └── ansi-regex@3.0.0 └── strip-eof@1.0.0
  2. 只获取您的顶级包

    npm list --depth=0
  3. 通过指定名称获取特定包的版本。

     npm list <package-name>
  4. 在 npm 存储库上查看该软件包的最新可用版本是什么

    npm view <package-name> version
  5. 使用 @ 语法安装旧版本的 npm 包

    npm install@npm install cowsay@1.2.0

  6. 列出软件包的所有先前版本

    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 依赖项

  1. 安装新的次要版本或补丁版本

     npm update
  2. 安装新的次要版本或补丁版本,但不更新 package.json

     npm update --no-save
  3. 为了发现软件包的新版本,这会为您提供一个存储库中的一些过时软件包的列表,这些软件包已经有一段时间没有更新了

     npm outdated

其中一些更新是主要版本。 运行 npm update 不会更新这些版本。 主要版本永远不会以这种方式更新,因为它们(根据定义)引入了重大更改,而 npm 想为您省去麻烦。

要将所有包更新到新的主要版本,请全局安装 npm-check-updates 包:

npm install -g npm-check-updates
ncu -u

这会将 package.json 文件中的所有版本提示升级为依赖项和 devDependencies,因此 npm 可以安装新的主要版本


开发依赖

安装在开发依赖项中。

npm install <package-name> -D
npm install <package-name> --save-dev # same as above

避免在生产环境中安装这些开发依赖项

npm install --production

卸载 npm 包

npm uninstall <package-name>
npm uninstall -g <package-name> # globally uninstall
  1. 卸载一个包并**删除package.json中的引用**

     npm uninstall <package-name> -S npm uninstall <package-name> --save # same as above

一些带有全局标志示例的命令。

npm list -g 
npm list --depth=0 -g
npm list <package-name> -g 
npm view <package-name> version -g 

附加命令

文档

对于本地模块使用npm list --depth 0

敌人全局模块npm list -g --depth 0

本地 npm 模块示例 全局 npm模块示例

使用npm list并使用grep按包含过滤

例子:

npm list -g | grep name-of-package

作为速记,您可以运行:

npm ls -g --depth=0

我正在使用 npm 版本 7.20.3,它看起来默认深度已经是 0。 所以在我的例子中, npm list --global只显示了一个已安装的包(npm)。 我知道我安装了更多的软件包,我对输出感到困惑。

最终,我尝试了--depth参数,我能够看到安装的所有包: npm list --global --depth=1以查看安装的其他包。 (设置为 10 以查看整个依赖关系树)。

>= v7.0.0:

npm ls -g

< v7.0.0:

npm ls -g --depth=0

参考

npm ls默认只打印第一级依赖。 您可以通过使用--depth=<n>设置特定深度或使用--all打印所有树来使其打印更多树。

有关最新版本,请参阅 npm 文档: https ://docs.npmjs.com/cli/v8/commands/npm-ls#depth

使用npm list -g获取所有全局安装的 npm 包。

要获取当前项目的 npm 个包,您只能使用“npm list”。

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM