node.js - 查看npm安装路径 - 查找已安装的npm软件包的版本




查看node安装目录 (14)

访问package.json

您可以通过以下方式访问软件包的package.jsonbower.json

notepad ./node_modules/:packageName/package.json

这将打开notepad中的package.jsonnotepad具有包含在command中的:packageNameversion number

例如 :

notepad ./node_modules/vue-template-compiler/package.json

祝你好运。

如何找到已安装的node.js / npm 软件包的版本?

这会打印npm本身的版本:

npm -v <package-name>

这打印出一个神秘的错误:

npm version <package-name>

这会在注册表上打印软件包版本(即可用的最新版本):

npm view <package-name> version

我如何获得安装的版本


npm view <package> version - 返回npm view <package> version的最新可用版本。

npm list --depth=0 - 返回所有已安装模块的版本,不含依赖关系。

npm list - 返回所有模块和依赖关系的版本。

最后获取节点版本: node -v


从包装的根目录做到:

node -p "require('./package.json').version"

编辑 :(如果你不在那里,你需要cd到模块的主目录下,如果你用npm install安装了模块,那么它将在node_modules/<module_name>

编辑2 :根据@ jeff-dickey的答案更新


你可以试试这个: npm show {package} version显示最新的软件包版本。 如果你的软件包过时了, npm outdated将会显示版本信息。


如果您同意安装jq ,则可以使用npm list的JSON输出。

npm -j ls <package-name> | jq -r .version

或者,如果你想要冗长

npm --json list <package-name> | jq --raw-output '.version'

例如:

$ npm -j ls ghost | jq -r .version
0.4.2

而且,对于全局包,JSON格式稍有不同,因此您需要更改查询。

例如:

$ npm -j -g ls | jq -r .dependencies.ghost.version
0.4.2

对于本地包

npm list --depth=0

对于全球包

npm list  -g --depth=0

您也可以通过此命令检查版本。

npm info <package name > version


您可以使用npm view [module]版本npm info [module]版本npm show [module]版本npm v [module]版本来检查安装的npm模块上的版本。

假设我的grunt模块版本是0.4.5:

npm view grunt version => 0.4.5
npm info grunt version => 0.4.5
npm show grunt version => 0.4.5
npm v grunt version    => 0.4.5

我刚使用npm list | grep <package name> npm list | grep <package name> ,它工作得很好

在Windows上运行:

npm list | find <package name>

在PowerShell中运行:

npm list | sls <package name>


我将它添加到我的.bashrc中

function npmv {
    case $# in # number of arguments passed
    0) v="$(npm -v)" ; #store output from npm -v in variable
        echo "NPM version is: $v"; #can't use single quotes 
                                   #${v} would also work
    ;;   
    1) s="$(npm list --depth=0 $1 | grep $1 | cut -d @ -f 2)";
       echo "$s";
    ;;
    2) case "$2" in # second argument
        g) #global|#Syntax to compare bash string to literal
             s="$(npm list --depth=0 -g $1 | grep $1 | cut -d @ -f 2)";
        echo "$s";
        ;;
        l) #latest
             npm view $1 version; #npm info $1 version does same thing
       ;;
       *) echo 'Invalid arguments';
       ;;
       esac;
    ;;
    *) echo 'Invalid arguments';
    ;;
    esac;
}
export -f npmv

现在我所要做的就是输入:

  • npm版本的npmv例如: NPM version is: 4.2.0
  • 本地版本的npmv <软件包名称>例如: 0.8.08
  • 对于全局版本, npmv <软件包名称> g例如: 0.8.09
  • npmv <软件包名称> l最新版本,例如: 0.8.10

注意-d关于切割命令意味着分隔,然后是@,那么f表示字段2意味着第二个字段,因为@符号的任一侧会有一个。


查找哪些软件包在本地安装且没有依赖关系的另一种快速方法是使用:

npm list --depth=0

这给你一些东西

├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
└── [email protected]

显然,使用npm list -g --depth=0可以在全局范围内完成相同的操作。

如果你安装了很多软件包,这种方法更加清晰。

要找出哪些软件包需要更新,可以使用npm outdated -g --depth=0


用于本地软件包的npm list -g或用于全局安装软件包的npm list -g

您可以通过将其名称作为参数来查找特定软件包的版本。 例如, npm list grunt会导致:

[email protected] /path/to/project/folder
└── [email protected]

或者,您可以运行npm list而不传递包名称作为参数,以查看所有包的版本:

├─┬ [email protected] 
│ └── [email protected] 
├── [email protected] 
├── [email protected] 
├─┬ [email protected] 
│ ├── [email protected] 
│ └── [email protected] 
└── [email protected] 

要在本地或全局查看所有已安装的软件包,请使用以下命令:

  1. 用于本地软件包的npm list -g或用于全局安装软件包的npm list -g
  2. npm list --depth=0
  3. npm list | sls <package name>
  4. node -v

npm info YOUR_PACKAGE version

例如

npm info grunt version
0.4.5






npm