【问题标题】:versioning tool for nodejsnodejs的版本控制工具
【发布时间】:2012-05-01 23:20:07
【问题描述】:

有一些解决方案可以在不同的应用程序中增加版本号。 Cocoa 应用程序有 agvtool,而 maven 有 maven-release-plugin,它会在发布时增加版本号。 nodejs有类似的工具吗?

【问题讨论】:

    标签: node.js versioning maven-release-plugin agvtool


    【解决方案1】:

    我认为这样的工具似乎过于笨拙了,当您需要做的唯一事情是增加 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 解析和字符串化的意义。跨度>
    【解决方案2】:

    我认为最正确的答案是使用npm version

    例如,增加包的主要版本:

    npm version major
    

    这将增加你的包的主要版本,如果它是一个 git 存储库,它也会提交该更改并创建一个与版本同名的标签。

    跟进:

    git push
    git push --tags
    

    【讨论】:

      【解决方案3】:

      grunt-bump 提供版本碰撞,以及 git tagging/commit/push。其他构建工具也有类似的包,例如gulp-bump

      npm version 现在也提供类似功能,但配置选项更少。

      【讨论】:

        猜你喜欢
        • 2010-12-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-02-24
        • 1970-01-01
        • 2014-09-13
        • 2010-10-01
        • 2011-10-08
        相关资源
        最近更新 更多