【发布时间】:2012-05-01 23:20:07
【问题描述】:
有一些解决方案可以在不同的应用程序中增加版本号。 Cocoa 应用程序有 agvtool,而 maven 有 maven-release-plugin,它会在发布时增加版本号。 nodejs有类似的工具吗?
【问题讨论】:
标签: node.js versioning maven-release-plugin agvtool
有一些解决方案可以在不同的应用程序中增加版本号。 Cocoa 应用程序有 agvtool,而 maven 有 maven-release-plugin,它会在发布时增加版本号。 nodejs有类似的工具吗?
【问题讨论】:
标签: node.js versioning maven-release-plugin agvtool
我认为这样的工具似乎过于笨拙了,当您需要做的唯一事情是增加 Node.js 中的版本号时,就像这样简单:
sed -i 's/0.1.2/0.2.4/' package.json
会更改您的 Node.js 包的版本吗?
如果您谈论的是在显式标记新版本时会部署代码的东西,我更倾向于使用 git hooks 并编写脚本来检测何时创建 git 标签,然后启动部署过程。
您可以使用pre-applypatch 挂钩来检测何时创建标签以运行上面列出的sed 脚本并自动为您运行npm publish,但同样,我看不出有什么意义当它是一个简单的脚本时,重量级工具可以处理所有这些(并且说脚本也可以用 Node.js 编写!)
【讨论】:
sed 调用来更改版本,因为字符串 0.1.2 可能会出现在依赖项中。最好先解析JSON然后做.version="0.2.4"然后stringify。
version: "0.1.2",,但由于 package.json 格式已完全定义,并且 version 字段在定义中是明确的,我看不出完整的 JSON 解析和字符串化的意义。跨度>
我认为最正确的答案是使用npm version。
例如,增加包的主要版本:
npm version major
这将增加你的包的主要版本,如果它是一个 git 存储库,它也会提交该更改并创建一个与版本同名的标签。
跟进:
git push
git push --tags
【讨论】:
grunt-bump 提供版本碰撞,以及 git tagging/commit/push。其他构建工具也有类似的包,例如gulp-bump。
npm version 现在也提供类似功能,但配置选项更少。
【讨论】: