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

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

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


当前回答

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,这可能是最简单的解决方案。

其他回答

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

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

正确的答案

要做到这一点,只需npm version patch =)

我的老答案

git中没有预先发布钩子。至少,man githooks没有表现出来。

例如,如果您正在使用git-extra (https://github.com/visionmedia/git-extras),您可以使用它实现的预发布钩子,如您可以在https://github.com/visionmedia/git-extras/blob/master/bin/git-release中看到的那样。它只需要一个.git/hook/pre-release.sh可执行文件来编辑你的包。json文件。提交、推送和标记将由git release命令完成。

如果你没有为git使用任何扩展,你可以写一个shell脚本(我将它命名为git-release.sh),然后你可以用这样的东西来别名git release:

Git配置——全局别名。释放”!Sh path/to/pre-release.sh $1'

你可以使用git release 0.4,它将执行路径/到/pre-release.sh 0.4。你的脚本可以编辑包。Json,创建标签并将其推送到服务器。

这是我通常对我的项目所做的:

npm version patch
git add *;
git commit -m "Commit message"
git push
npm publish

第一行,npm version patch,会将package.json中的补丁版本增加1 (x.x.1到x.x.2)。然后添加所有文件——包括package。Json,此时已被修改。 然后,通常的git commit和git push,最后是npm publish来发布模块。

我希望这是有意义的…

芝加哥商业交易所。

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,这可能是最简单的解决方案。

首先,您需要了解升级版本号的规则。你可以在这里阅读更多关于语义版本的信息。

每个版本都有x.y.z版本,它为不同的目的定义,如下所示。

X大调,当你有很大的变化时 发生了不一致的变化。 Y小调,当你有 出现了新的功能或增强。 Z - patch, up this when 您修复了错误或恢复了早期版本上的更改。

要运行脚本,可以在package.json中定义它。

"script": {
    "buildmajor": "npm version major && ng build --prod",
    "buildminor": "npm version minor && ng build --prod",
    "buildpatch": "npm version patch && ng build --prod"
}

在你的终端中,你只需要根据你的需要运行npm

npm run buildpatch

如果在git repo中运行它,默认的git-tag-version是true,如果你不希望这样做,你可以在你的脚本中添加以下命令:

--no-git-tag-version

例如:"npm -no-git-tag-version version major && ng build -prod"