首页 > 解决方案 > npm version "脚本可以访问 package.json 中的新版本"

问题描述

文档npm version位于https://docs.npmjs.com/cli/version

它说(我的重点):

  1. 运行版本脚本。这些脚本可以访问 package.json 中的新版本(例如,它们可以将其合并到生成文件的文件头中)。同样,脚本应该使用 git add 显式地将生成的文件添加到提交中。

你如何从 package.json 获得这个版本。使用grep, tr, ..shell 命令的组合还是在变量中?我尝试%s将其用于git tagand$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(现已解决)。

标签: gitnpmversion

解决方案


推荐阅读