在我做一个小的发布和标记它之前,我想更新这个包。Json来反映程序的新版本。
是否有编辑文件包的方法。json自动吗?
使用git预发布钩子会有帮助吗?
在我做一个小的发布和标记它之前,我想更新这个包。Json来反映程序的新版本。
是否有编辑文件包的方法。json自动吗?
使用git预发布钩子会有帮助吗?
当前回答
提供一个最新的方法。
package.json
"scripts": {
"eslint": "eslint index.js",
"pretest": "npm install",
"test": "npm run eslint",
"preversion": "npm run test",
"version": "",
"postversion": "git push && git push --tags && npm publish"
}
然后运行它:
npm version minor --force -m "Some message to commit"
将:
... 进行测试… 更换你的包裹。Json到下一个小版本(例如:1.8.1到1.9.0) 推动您的更改 创建一个新的git标签版本和 发布你的NPM包。
——武力就是要显示谁是老大!撇开笑话不谈,见https://github.com/npm/npm/issues/8620
其他回答
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,这可能是最简单的解决方案。
我用的是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>
请检查我的NodeAutoVersionPush宏脚本。 这是一个宏,使用Visual Studio Code API来自动设置新版本,然后使用键盘快捷键进行提交和推送。
新版本基于当前日期和提交总数。 但是您可以根据自己的喜好或任何其他语言轻松地调整代码。
我知道这是一个老问题,但我希望这种方法可以帮助某人,以防你想自动更新两个包。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,修改提交(默认情况下版本脚本已经创建了一个提交),然后创建一个标签。
首先,您需要了解升级版本号的规则。你可以在这里阅读更多关于语义版本的信息。
每个版本都有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"