如何仅在 npm
中列出用户安装/环境包?
当我执行 npm -g list
时,它会输出每个包及其依赖项,而我希望看到安装在 当前工作项目或环境中的包。
npm list -g --depth=0
npm:Node 包管理器命令行工具
list -g:显示在用户文件夹中找到的每个包的树(没有 -g 选项它只显示当前目录的包)
--depth 0 / --depth=0:避免在树视图中包含每个包的依赖项
您可以使用以下命令获取所有全局安装模块的列表:
ls `npm root -g`
ls -lh `npm root -g`
将它们显示在一个漂亮的列表中。
npm list -g --depth=0
打印出很好的版本。无论如何,我不知道这个命令所以+1。
npm root -g | gci
在 Windows 上的 Powershell 中
截至 2015 年 12 月 13 日
https://i.stack.imgur.com/VQVGv.gif
虽然我发现接受的答案 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 版本,另请参阅 this link,因为有一个特殊脚本建议用于全局更新所有包)。
上述命令应该适用于 NPM 版本 1.3.x、1.4.x、2.x 和 3.x
npm update -g <package>
。我相信这里的 update
比 install
更可取,因为 npm 会很聪明,并且只有在指定的包过时时才进行安装。
列出带有一些友好 gui 的 NPM 包!
这是我个人更喜欢的,可能对其他人也是如此,它也可能在演示或会议期间有所帮助。
使用 npm-gui
,您可以以更好的可视化方式列出本地和全局包。
您可以在以下位置找到包裹
https://www.npmjs.com/package/npm-gui
https://github.com/q-nick/npm-gui
运行以下
//Once
npm install -g npm-gui
cd c:\your-prject-folder
npm-gui localhost:9000
然后在 http:\\localhost:9000
打开您的浏览器
https://i.stack.imgur.com/WAd0c.png
对于项目依赖项,请使用:
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
您可以找到完整的文档 here。
Node 有本地模块和全局模块的概念
本地模块位于当前项目目录中。
全局模块通常位于用户的主目录,但我们可以更改全局模块所在的路径。
列出当前目录中的本地模块:npm list 列出全局模块:npm list --global OR npm list --g // 它将列出所有顶级模块及其依赖项 仅列出顶级(已安装的模块)全局模块:npm list -g --深度=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 list -g --depth=0
npm root
时,它告诉我:Users/me/node_modules
不正确。我的 node_modules 住在别的地方。我想这取决于你如何安装节点。我使用 brew
安装我的软件。我猜这是如果您使用他们的软件包安装程序从他们的网站安装节点?
我使用 npm -g outdated --depth=0
列出全局空间中的过时版本
。
查看已安装的所有软件包的列表。
$ npm ls --parseable | awk '{gsub(/\/.*\//,"",$1); print}'| sort -u
显示可解析的 npm 包列表 https://docs.npmjs.com/cli/ls#parseable
https://i.stack.imgur.com/QAAzx.png
一键安装/卸载dev
或global
状态的包。
Node_modules 包含用户安装的包,因此将目录更改为 node_modules 并列出项目。 Core 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
标志。
列出已安装的依赖命令
查看所有已安装 npm 包的版本,包括它们的依赖项。 ❯ npm 列表 >>> /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 仅获取您的顶级包 npm list --depth=0 通过指定其名称获取特定包的版本。 npm list
更新所有 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 文件中的所有版本提示升级为依赖项和 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
卸载一个包并**删除package.json中的引用** npm uninstall
一些带有全局标志示例的命令。
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 依赖项和 devDependencies
npx Node.js 包 RunnerTABLE OF CONTENTS
对于本地模块使用npm list --depth 0
敌人全局模块 npm list -g --depth 0
Example local npm module Example global npm module
使用 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=
有关最新版本,请参阅 npm 文档:https://docs.npmjs.com/cli/v8/commands/npm-ls#depth
npm help ls
时没有提到--depth=0
选项?--prefix
将模块安装在另一个文件夹中,则您需要将--prefix
也添加到此npm list
命令中。npm config set depth 0
将其设为默认值。| grep -v "duped"
以将重复的依赖项删除到列表中也可能会很好