在我做一个小的发布和标记它之前,我想更新这个包。Json来反映程序的新版本。
是否有编辑文件包的方法。json自动吗?
使用git预发布钩子会有帮助吗?
在我做一个小的发布和标记它之前,我想更新这个包。Json来反映程序的新版本。
是否有编辑文件包的方法。json自动吗?
使用git预发布钩子会有帮助吗?
当前回答
如果你用的是纱线,你可以用
yarn version patch
这将增加包。Json版本由补丁(0.0.x),提交,并标记它的格式为v0.0.0
同样,你可以使用——minor或——major来碰撞minor或major版本
在推到git时,确保你也推了带有——follow-tags的标签
git push --follow-tags
您还可以为它创建一个脚本
"release-it": "yarn version --patch && git push --follow-tags"
只需输入yarn release-it即可运行
其他回答
这是我通常对我的项目所做的:
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版本
是否有编辑文件包的方法。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点)
我最终编写了这个解决方案(将其添加到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来创建一个带有标签的版本化提交。
以防万一,如果你想用npm package semver链接来做这件事
let fs = require('fs');
let semver = require('semver');
if (fs.existsSync('./package.json')) {
var package = require('./package.json');
let currentVersion = package.version;
let type = process.argv[2];
if (!['major', 'minor', 'patch'].includes(type)) {
type = 'patch';
}
let newVersion = semver.inc(package.version, type);
package.version = newVersion;
fs.writeFileSync('./package.json', JSON.stringify(package, null, 2));
console.log('Version updated', currentVersion, '=>', newVersion);
}
包中。Json应该是这样的,
{
"name": "versioning",
"version": "0.0.0",
"description": "Update version in package.json using npm script",
"main": "version.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"version": "node version.js"
},
"author": "Bhadresh Arya",
"license": "ISC",
"dependencies": {
"semver": "^7.3.2"
}
}
只需要将major, minor, patch参数传递给NPM运行版本。默认为补丁。
例子: NPM运行版本或NPM运行版本补丁或NPM运行版本小或NPM运行版本大
去回购
你可以使用版本选择包:
npm i -D version-select
{
"name": "test",
"version": "1.0.0",
"scripts": {
"version-select": "version-select"
},
"devDependencies": {
"version-select": "^1.0.13"
}
}
阅读更多