如何查找已安装Node.js或npm包的版本?
这将打印npm本身的版本:
npm -v <package-name>
这将打印一个隐藏的错误:
npm version <package-name>
这将在注册表中打印软件包版本(即可用的最新版本):
npm view <package-name> version
如何获取已安装的版本?
如何查找已安装Node.js或npm包的版本?
这将打印npm本身的版本:
npm -v <package-name>
这将打印一个隐藏的错误:
npm version <package-name>
这将在注册表中打印软件包版本(即可用的最新版本):
npm view <package-name> version
如何获取已安装的版本?
当前回答
我将此添加到.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 the same thing
;;
*) echo 'Invalid arguments';
;;
esac;
;;
*) echo 'Invalid arguments';
;;
esac;
}
export -f npmv
现在我要做的就是键入:
npm版本的npmv,例如,npm版本为:4.2.0本地版本的npmv<package name>,例如0.8.08全局版本的npmv<package name>g,例如0.8.09最新版本的npmv<package name>l,例如0.8.10
注意cut命令上的-d表示分隔符,后跟@,然后f表示字段。“2”表示第二个字段,因为@符号的两边都有一个。
其他回答
从包的根目录执行以下操作:
node -p "require('./package.json').version"
(因此,如果您还不在模块的主目录中,则需要cd到该目录中。如果您安装了带有npm install的模块,则该模块将位于node_modules/<module_name>下。)
您可以尝试以下操作:npmshow{package}版本显示最新的包版本。如果您的包已过时,npm过时将显示版本信息。
我将此添加到.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 the same thing
;;
*) echo 'Invalid arguments';
;;
esac;
;;
*) echo 'Invalid arguments';
;;
esac;
}
export -f npmv
现在我要做的就是键入:
npm版本的npmv,例如,npm版本为:4.2.0本地版本的npmv<package name>,例如0.8.08全局版本的npmv<package name>g,例如0.8.09最新版本的npmv<package name>l,例如0.8.10
注意cut命令上的-d表示分隔符,后跟@,然后f表示字段。“2”表示第二个字段,因为@符号的两边都有一个。
这有一个简单的方法。首先,转到所需的位置(package.json所在的位置)。只需将package.json文件作为文本编辑器打开即可。
通过此方法,您可以在一个位置找到所有模块版本。
package.json看起来像这样
{
"name": "raj",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"bcrypt": "^5.0.1",
"connect-flash": "^0.1.1",
"dotenv": "^10.0.0",
"ejs": "^3.1.6",
"express": "^4.17.1",
"express-session": "^1.17.2",
"mysql2": "^2.2.5",
"passport": "^0.4.1",
"passport-local": "^1.0.0",
"sequelize": "^6.6.2",
"socket.io": "^4.1.2"
}
}
因此,您可以读取pc中安装的每个依赖项(模块),即“socket.io”:“^4.1.2”,因此“socket.io'”的版本为4.1.2。
我正在使用
npm list --depth=0 | grep module_name@
它给我带来了这样的结果:
module_name@2.1033.0