在我做一个小的发布和标记它之前,我想更新这个包。Json来反映程序的新版本。
是否有编辑文件包的方法。json自动吗?
使用git预发布钩子会有帮助吗?
在我做一个小的发布和标记它之前,我想更新这个包。Json来反映程序的新版本。
是否有编辑文件包的方法。json自动吗?
使用git预发布钩子会有帮助吗?
当前回答
作为npm版本的一个补充,如果你想要一个版本碰撞但没有标记或一个新的提交,你可以使用——no-git-tag-version标记:
npm --no-git-tag-version version patch
https://docs.npmjs.com/cli/version
其他回答
我用的是husky和git-branch-is:
从哈士奇v1+开始:
// package.json
{
"husky": {
"hooks": {
"post-merge": "(git-branch-is master && npm version minor ||
(git-branch-is dev && npm --no-git-tag-version version patch)",
}
}
}
在husky V1之前:
"scripts": {
...
"postmerge": "(git-branch-is master && npm version minor ||
(git-branch-is dev && npm --no-git-tag-version version patch)",
...
},
阅读更多关于npm版本
Webpack或Vue.js
如果你正在使用webpack或Vue.js,你可以在UI中使用自动注入版本- webpack插件来显示它
NUXT
在nuxt.config.js:
var WebpackAutoInject = require('webpack-auto-inject-version');
module.exports = {
build: {
plugins: [
new WebpackAutoInject({
// options
// example:
components: {
InjectAsComment: false
},
}),
]
},
}
例如在模板的页脚中:
<p> All rights reserved © 2018 [v[AIV]{version}[/AIV]]</p>
我想澄清一下这个问题的答案。
尽管这里有一些答案可以正确地解决问题并提供解决方案,但它们并不是正确的答案。这个问题的正确答案是使用npm版本
是否有编辑文件包的方法。json自动吗?
是的,你能做的就是在需要的时候运行npm version命令,你可以在这里阅读更多关于它的信息,但基本用法是npm version patch,它会在你的包上添加第三位数字。json版本(1.0.X)
使用git预发布钩子会有帮助吗?
你可以根据需要配置在预发布钩子上运行npm version命令,但这取决于你在CD/CI管道中是否需要它,但如果没有npm version命令,git预发布钩子无法“轻松”地使用package.json
npm版本是正确答案的原因如下:
如果用户正在使用包含包的文件夹结构。如果他在使用NPM,他就可以访问NPM脚本。 如果他能访问npm脚本,他就能访问npm版本命令。 使用这个命令,他不需要在他的计算机或CD/CI管道中安装更多的东西,从长远来看,这将减少项目的可维护性工作,并将有助于设置
提出其他工具的其他答案是不正确的。
Gulp-bump有效,但需要另一个额外的包,从长期来看可能会产生问题(我的答案的第3点)
Grunt-bump有效,但需要另一个额外的包,这可能会在长期产生问题(我的回答的第3点)
正确的答案
要做到这一点,只需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来发布模块。
我希望这是有意义的…
芝加哥商业交易所。
我知道这是一个老问题,但我希望这种方法可以帮助某人,以防你想自动更新两个包。Json放在不同的位置,以便使用相同的版本。
首先,把这些线添加到你的主包中。Json脚本部分:
"new-version": "npm version --git-tag-version=false",
"version": "echo 'starting postversion script'",
"postversion": "LAST_VERSION=$(npm pkg get version | sed 's/\"//g') && echo $LAST_VERSION && cd projects/ngx-timeline && sed -i.bak \"s/\\\"version\\\": \\\"[0-9]\\.[0-9]\\.[0-9]\\\"/\\\"version\\\": \\\"$LAST_VERSION\\\"/g\" package.json && rm package.json.bak && git commit -am \"Release $LAST_VERSION\" && git tag v$LAST_VERSION"
然后运行npm run new-version minor,
第一个脚本将运行带有minor和避免标记的选项的NPM版本 版本脚本将在默认命令(在我的例子中只是一个echo)之后运行您需要的命令。 在带有sed的后版本脚本中,我可以覆盖子包中的版本。Json,修改提交(默认情况下版本脚本已经创建了一个提交),然后创建一个标签。