在我做一个小的发布和标记它之前,我想更新这个包。Json来反映程序的新版本。

是否有编辑文件包的方法。json自动吗?

使用git预发布钩子会有帮助吗?


当前回答

你可以使用版本选择包:

npm i -D version-select
{
    "name": "test",
    "version": "1.0.0",
    "scripts": {
        "version-select": "version-select"
    },
    "devDependencies": {
        "version-select": "^1.0.13"
    }
}

阅读更多

其他回答

请检查我的NodeAutoVersionPush宏脚本。 这是一个宏,使用Visual Studio Code API来自动设置新版本,然后使用键盘快捷键进行提交和推送。

新版本基于当前日期和提交总数。 但是您可以根据自己的喜好或任何其他语言轻松地调整代码。

我的构建和发布脚本运行在一个无法访问git的docker映像中,所以我想要一些不修改我的存储库,但能够发布自动递增版本的方法。所以我在预发布脚本中添加了这个:

npm view `sed -nr 's/"name": "([^"]+).*/\1/p' package.json` version | awk -F'.' '{ cmd = "npm version v" $1 "." $2 "." $3+1 " --force --no-git-tag-version"; system(cmd)}'

它的作用:

用sed读取包名 要求最新发布的版本与NPM查看版本 调用NPM version——force——no-git-tag-version,其中version取自(2)并加1

有很多方法可以改进它,但至少它是有效的,而且是普遍的。

NPM版本可能是正确的答案。为了给大家一个替代的选择,我建议你用咕噜撞。它是由angular.js的一个人维护的。

用法:

grunt bump
>> Version bumped to 0.0.2

grunt bump:patch
>> Version bumped to 0.0.3

grunt bump:minor
>> Version bumped to 0.1.0

grunt bump
>> Version bumped to 0.1.1

grunt bump:major
>> Version bumped to 1.0.0

如果你使用grunt,这可能是最简单的解决方案。

作为npm版本的一个补充,如果你想要一个版本碰撞但没有标记或一个新的提交,你可以使用——no-git-tag-version标记:

npm --no-git-tag-version version patch

https://docs.npmjs.com/cli/version

我最终编写了这个解决方案(将其添加到package.json)脚本。Yarn具有非常相似的功能。

"postversion": "git add package.json && git commit -m $npm_package_version && git tag $npm_package_version HEAD && git push --tags"

它更新版本字段,创建一个新的提交包。Json,提交版本名,标记它并推送到分支。

然后,你可以运行npm version patch | npm version minor | npm version major来创建一个带有标签的版本化提交。