0

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

咕噜声-cli v1.4.2

使用 a Gruntfile.js,如何将 my 设置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来写入文件。

4

1 回答 1

0

更新:

我将此标记为答案,但这是一个错误的答案。这将替换文件中所有出现的x.y.z版本,而package*.json不仅仅是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);
  });
};
于 2022-02-04T16:07:14.720 回答