如何列出npm用户安装的包

如何在npm中列出用户安装的/环境包只有

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

596032 次浏览

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

npm root

输出:

    /Users/me/repos/my_project/node_modules

然后列出该目录…

ls /Users/me/repos/my_project/node_modules

输出:

    grunt                   grunt-contrib-jshint

在这种情况下,用户安装的包是咕噜grunt-contrib-jshint相关文档

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

示例:

cd ~/node_modulesls

输出:

     express  maxmind-native  node-whois  socket.io  ua-parser-jsgeoip    mongoskin       pdfkit      tail       zeromqmaxmind  nodemailer      request     ua-parser  zmq

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

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

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

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

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

截至2015年12月13日

npm列表插图

虽然我发现公认的答案100%正确且有用,但我希望根据自己的经验对其进行一点扩展,并希望对其他人也有好处。(这里我可以互换使用术语包和模块)

在对这个问题的回答中,可以接受的答案是:

npm list -g --depth=0

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

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

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

npm view <module_name> 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。

Node.js有当地模块和全球模块的概念。

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

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

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

对于项目依赖项使用:

npm list --depth=0

对于全局依赖项使用:

npm list -g --depth=0

用途:

npm ls

npm list只是npm ls的别名。

对于扩展信息,请使用:

npm lanpm ll

您始终可以在末尾设置--depth=0以深入第一层。

npm ls --depth=0

您可以检查开发和生产包。

npm ls --only=devnpm ls --only=prod

json格式显示信息

npm ls --json=true

默认值为false

npm ls --json=false

您可以坚持使用长格式来显示扩展信息。

npm ls --long=true

您可以显示可解析的输出而不是树视图。

npm ls --parseable=true

您可以在全局安装前缀中而不是在当前项目中列出包。

npm ls --global=truenpm ls -g // shorthand

您可以找到完整的留档这里

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

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

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

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

您可以在以下网址找到包裹

运行以下

// Oncenpm install -g npm-gui
cd c:\your-prject-foldernpm-gui localhost:9000

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

npm-gui

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

示例:

npm list -g | grep name-of-package

您可以尝试NPM桌面管理器

NPM桌面管理器

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

作为速记,您可以运行:

npm ls -g --depth=0

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

对于全局模块,使用npm list -g --depth 0

本地npm模块示例

全局npm模块示例

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

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

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

# Bare commandnpm list# 'ls' is an alias of listnpm ls# Don't show dependenciesnpm list --depth=0# Global modulesnpm list -g --depth=0# More infonpm lanpm ll# Show particular environment packagesnpm ls --only=devnpm ls --only=prod# Parseable view (tree view)npm ls --parseable=true

Node.js留档实际上已经很好地解释了这个问题。这是主要命令的集体列表。

在开始之前,备注:


所有命令将运行已安装模块的列表<强>本地。为了在全局级别运行,只需在语句末尾添加#0标志即可。


列出已安装的依赖命令

  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 <package>@<version>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更新不会更新这些版本。主要版本永远不会以这种方式更新,因为它们(根据定义)引入了破坏性更改,npm希望为您节省麻烦。

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

npm install -g npm-check-updatesncu -u

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


开发依赖

安装在开发依赖项中。

npm install <package-name> -Dnpm install <package-name> --save-dev # The 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> -Snpm uninstall <package-name> --save # The same as above

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

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

附加命令

需求文档

>=v7.0.0:

npm ls -g

npm ls -g --depth=0

参考

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

有关最新版本,请参阅npm留档:npm-ls,深度

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