【问题标题】:In Grunt, how can I set package.json version to a specific version using Grunt plugins?在 Grunt 中,如何使用 Grunt 插件将 package.json 版本设置为特定版本?
【发布时间】:2022-02-16 05:31:12
【问题描述】:

更新: grunt-bump 插件仅适用于符合语义版本控制格式的版本。如果我使用不符合 semver 的版本,例如 test-2.0.0,它将不起作用。

grunt-cli v1.4.2

使用Gruntfile.js,如何将package.json 设置为不一定是semver 版本的特定版本字符串?我使用grunt-bump 插件,所以我这样做了

Gruntfile.js

module.exports = function(grunt) {
  grunt.initConfig({
    bump: {
      options: {
        files: ['package.json', 'package-lock.json'],
        updateConfigs: ['pkg'],
        versionType: 'patch',
        ...
      },
      ...
  });
  ...

  var myTasks = [
    "task1",
    "clean",
    ....
    "compress"
  ];

  grunt.registerTask('build', 'Build version', function () {
      grunt.config('bump.options.setVersion', "tag-2.0.0");
      grunt.task.run(myTasks);
  });
};

...然后在命令行上执行此操作...

$ npm grunt build

但是,package.json 未更新为 "version": "tag-2.0.0"。我错过了什么?

在 Gulp 中,我使用 gulp-pipe 写入文件。

【问题讨论】:

    标签: npm gruntjs gruntfile


    【解决方案1】:

    更新:

    我将此标记为答案,但这是一个错误的答案。这将替换 package*.json 文件中所有出现的 x.y.z 版本,而不仅仅是 version 键。

    我最终使用了grunt-text-replace 插件。

    我现在有了这个。

    Gruntfile.js
    
    module.exports = function(grunt) {
      gruntfile.initConfig ({
        replace: {
          pkg_versions: {
            src: ['./package*.json'],
            overwrite: true,  // overwrite matched source files in dist
            replacements: [{
              from: '<%= pkg.version %>', 
              to: '2.0.0'
            }]
          }
        }
      });
      ...
      var myTasks = [
        "task1",
        "clean",
        "replaceZ:pkg_version",
        ....
        "compress"
      ];
      ...
      grunt.registerTask('build', 'Build version', function () {
          grunt.task.run(myTasks);
      });
    };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-26
      • 2014-03-25
      • 2016-06-15
      • 2017-01-21
      • 2015-09-03
      • 1970-01-01
      • 2014-06-16
      相关资源
      最近更新 更多