自动更新的package.json版本(update package.json version au

2019-07-02 13:28发布

之前,我做一个小的释放和标记的话,我想更新的package.json以反映程序的新版本。

是否存在编辑文件的方式package.json自动?

将使用git pre-release hook的帮助?

Answer 1:

npm version可能是正确答案。 只给一个替代我建议咕噜凸点 。 它是由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

如果您使用咕噜无论如何,它可能是最简单的解决方案。



Answer 2:

正确答案

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

我的老回答

有没有pre-release钩最初git 。 至少, man githooks不显示它。

如果您使用git-extra ( https://github.com/visionmedia/git-extras )例如,你可以使用一个pre-release这是由它来实现挂钩,因为你可以看到https://开头github.com/visionmedia/git-extras/blob/master/bin/git-release 。 它是只需要.git/hook/pre-release.sh的可执行文件,编辑文件package.json文件。 承诺,推动和标签将被完成git release命令。

如果你不使用任何扩展git ,你可以写一个shell脚本(我将其命名为git-release.sh )和比你可以别名,从而git release的东西,如:

git config --global alias.release '!sh path/to/pre-release.sh $1'

你可以,比,使用git release 0.4将执行path/to/pre-release.sh 0.4 。 脚本可以编辑package.json ,创建标签,并将它推到服务器。



Answer 3:

这就是我常跟我的项目做:

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

第一行中, npm version patch ,将由1(XX1到XX2)增加补丁版本package.json 。 然后添加的所有文件-包括package.json它在这一点已被修改。 然后,通常的git commitgit push ,终于npm publish发布模块。

我希望这是有道理的...

芝加哥商业交易所。



Answer 4:

为了让更先进的最新方法。

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"

这将:

  1. ...运行测试...

  2. 改变你package.json到下一个次要版本(例如:1.8.1至1.9.0)

  3. 把你的变化

  4. 创建一个新的Git标签释放

  5. 发布您的NPM包。

--force是要表明谁是老大! 言归正传看到https://github.com/npm/npm/issues/8620



Answer 5:

作为除了npm version ,你可以使用--no-git-tag-version ,如果你想有一个版本的凸起,但没有标签或标志新的承诺:

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

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



Answer 6:

如果您使用的纱线可以使用

yarn version --patch

这将增加package.json通过补丁版本(0.0.x)提交,并与格式标记它v0.0.0

同样,你可以通过使用凸点或大或小的版本--minor--major

当按下与git确保你也推标签与--follow-tags

git push --follow-tags

你也可以为它创建一个脚本

    "release-it": "yarn version --patch && git push --follow-tags"

只需键入运行它yarn release-it



Answer 7:

我想比较清楚到这个问题得到了答案。

甚至认为这里有一些答案被正确地解决这一问题,并提供解决方案,它们不正确的。 正确回答这个问题是使用npm version

是否有自动编辑文件的package.json的方法吗?

是的,你可以做什么来实现这一目标是运行npm version需要时命令,你可以阅读更多关于它在这里NPM版本 ,但基本用法是npm version patch ,它会在您添加的第三个数字顺序package.json版本(1.0。X)

将使用Git的预发行挂钩的帮助?

您可以配置运行npm version的预发行挂钩命令,根据您的需要,但是这取决于如果这是你需要的,或者不是在你的CD / CI管道,但没有npm version命令git pre-release挂钩不能做任何事情“易”与package.json

之所以npm version是正确的答案如下:

  1. 如果用户使用的是其有一个文件夹结构package.json他正在使用npm ,如果他使用npm ,他先后获得了npm scripts
  2. 如果他访问npm scripts ,他先后获得了npm version命令。
  3. 使用这个命令,他并不需要在自己的电脑或CD / CI管这在长期内将减少项目的维护工作更加安装任何软件,并将与设置帮助

其中提出了其他工具的其他的答案是不正确的。

gulp-bump的作品,但需要另一个额外的包,可能造成的长期问题(我回答的第3点)

grunt-bump工作,但需要另一个额外的包,可能造成的长期问题(我回答的第3点)



Answer 8:

我使用的沙哑和混帐分支是 :

"scripts": {
  ...
  "postmerge": "(git-branch-is master && npm version minor || 
  (git-branch-is dev && npm --no-git-tag-version version patch)",
  ...
},

了解更多关于故宫的版本

的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
        },
      }),
    ]
  },
}

里面的template例如在页脚:

<p> All rights reserved © 2018 [v[AIV]{version}[/AIV]]</p>


Answer 9:

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

每个版本将具有XYZ的版本,其中,如下所示定义了用于不同的目的。

  1. X - 大,了这个当你有大的变化,这是发生变化的巨大差异。
  2. Ÿ - 小调,了这个当你有新的功能或增强的发生。
  3. ž - 补丁,这最多当你有固定的错误或恢复较早版本的变化。

要运行脚本,你可以在你的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仓库运行它,默认的git标签版本是真实的,如果你不希望这样做,你可以添加以下命令到您的脚本:

--no-git-tag-version

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



文章来源: update package.json version automatically