git - npm version "脚本可以访问 package.json 中的新版本"
问题描述
文档npm version
位于https://docs.npmjs.com/cli/version。
它说(我的重点):
- 运行版本脚本。这些脚本可以访问 package.json 中的新版本(例如,它们可以将其合并到生成文件的文件头中)。同样,脚本应该使用 git add 显式地将生成的文件添加到提交中。
你如何从 package.json 获得这个版本。使用grep, tr, ..
shell 命令的组合还是在变量中?我尝试%s
将其用于git tag
and$npm.version
但$npm_package_version
没有任何效果。
我最终使用了这个,效果很好:
"script": {
....
"postversion": "version=$(git-semver-tags | head -1); echo \"export const config = { version: '$version' }\" > client/src/app/config-from-npm.ts",
....
}
编辑请注意,我将上面的内容从“版本”更改为“后版本”,因为新git tag
版本在版本之后才可用,我更改为git-semver-tags
因为git tags
按词法列出它们(所以 0.0.1 在 0.0.20 之前)。
我的解决方案表明我必须使用git-semver-tags
. 问题是 - 有没有像 doco 所说的那样从 package.json 获取版本的正确方法?
我觉得应该更新doco。我以为我会针对https://github.com/npm/cli项目创建一个问题,但没有“问题”链接(至少对我而言)。这是一个新的 git 存储库,它是最近从另一个项目迁移过来的,所以也许有人忘了勾选那个框!
(编辑)关于如何从 NPM 编写 .json/.js/.ts 文件,我有一个单独的问题。 如何在 NPM 脚本中输出 JSON(现已解决)。