【发布时间】:2020-12-01 03:36:28
【问题描述】:
在我的项目的根目录中,我有一个 package.json。在进行 CI 构建时,我试图从文件中捕获版本属性。由于我在节点容器上运行,所以可以使用以下命令。
node -p -e require('./package.json').version
我在 package.json 的 scripts 属性中包含了上述内容
"scripts": {
"version": "node -p -e require('./package.json').version"
},
我正在使用变量将其捕获
export VERSION=$(npm run version)
这似乎比 npm 命令捕获的结果要多得多。构建环境是一个基于rhel7构建的Nodejs10容器。
jq 不可用,没有它可能会更好
有什么建议吗?
【问题讨论】:
-
1) 将您的 npm 脚本更改为:
"version": "node -p \"require('./package.json').version\""--e选项不是必需的,要评估的 js 也必须作为字符串传递。请注意,它被包含在 JSON 转义双引号中,即\"。 2) 也可以使用以下代码捕获并导出它;export VERSION=$(npm run version -s)- 注意额外的-s选项(这是--silent的简写) - 这确保您只捕获版本(例如1.0.0)而不是额外的 npm 日志信息。 -
感谢 RobC。正是我想要的。您可以将其发布为答案,我会接受它
标签: node.js bash npm rhel npm-scripts