如何使用npm
从package.json获取当前版本?
我知道npm version
将输出我软件包的版本以及npm和其他依赖项。但是我需要一个简短的命令来仅获取我的软件包版本以在CI上使用。因此理想情况下,无需额外输入,因为CI不知道它要处理的项目是什么。
npm version from-git --allow-same-version
也可以,如果它没有尝试在Git上标记新版本的话。
答案 0 :(得分:4)
使用 npm:
npm -s run env echo '$npm_package_version'
答案 1 :(得分:2)
没有直接的npm命令仅显示您的软件包版本,但是您可以在项目文件夹中使用此技巧:
node -e "console.log(require('./package.json').version);
如果要使用npm命令,可以将其包装到package.json
文件中的“脚本”中:
"scripts": {
"version": "node -e "console.log(require('./package.json').version);"
}
现在您可以启动npm run version
来获取软件包的版本
答案 2 :(得分:2)
要建立在Kaz的答案上,这个要短一些。
PACKAGE_VERSION=`node -p "require('./package.json').version"`
答案 3 :(得分:0)
如果使用grep
和sed
对您来说不是问题,那么这对我来说非常有用:
VERSION_NUMBER=$(npm version | grep @ | sed -re "s/\{ '.*': '(.*)',?/\1/g")
说明:
npm version
为您提供所有信息grep @
抓住了您拥有版本的位置sed -re "s/\{ '.*': '(.*)',?/\1/g"
仅用版本号替换文本答案 4 :(得分:0)
如果您的项目由 git 支持并且您让 npm version
标记您的构建,那么您可能可以利用 git describe
:
echo The current build is \"`git describe`\".
==> The current build is "v0.0.2".
这不是技术上使用 npm
来获取版本,但这是我在尝试找到基于“真实”npm
的解决方案并找到此 SO 后最终使用的这清楚地表明没有一个好的 clean 命令可用。