如何防止usemin覆盖原始index.html文件

时间:2014-11-20 22:54:29

标签: gruntjs grunt-usemin

我使用usemin,我一般都喜欢它,但我真的不喜欢usemin覆盖我原来的index.html文件。我的Gruntfile中有一个非常典型的设置:

useminPrepare: {
  html: '<%= yeoman.app %>/index.html',
  options: {
    root: '<%= yeoman.root %>',
    staging: '<%= yeoman.tmp %>',
    dest: '<%= yeoman.dist %>',
    flow: {
      html: {
        steps: {
          js: ['concat', 'uglifyjs'],
          css: ['cssmin']
        },
        post: {}
      }
    }
  }
},

每当我使用grunt构建时,最终都会被转储到dist目录中。大多数其他需要做的事情是临时的&#39;修改复制和修改.tmp目录中的文件。

虽然使用实际的index.html文件,但是使用了这个文件。我特别不喜欢这样,因为它让Github认为每次我签入新代码时文件都会改变。

有没有办法告诉usemin像大多数其他grunt插件一样使用.tmp目录?

我指定我的临时目录:

staging: '<%= yeoman.tmp %>'

但这似乎并不能阻止index.html文件被覆盖。

感谢。

更新(根据以下评论)

这是usemin任务本身:

// Performs rewrites based on filerev and the useminPrepare configuration
usemin: {
  html: ['<%= yeoman.dist %>/{,*/}*.html'],
  css: ['<%= yeoman.dist %>/styles/{,*/}*.css'],
  options: {
    assetsDirs: ['<%= yeoman.dist %>','<%= yeoman.dist %>/images']
  }
},

这是使用useminPrepare和usemin:

的grunt任务
grunt.registerTask('build', [
  'clean:dist',
  'wiredep',
  'useminPrepare',
  'concurrent:dist',
  'autoprefixer',
  'concat',
  'ngAnnotate',
  'copy:dist',
  'cdnify',
  'cssmin',
  'uglify',
  'filerev',
  'usemin',
  'htmlmin',
  'bridge:dist'
]);

1 个答案:

答案 0 :(得分:-2)

只是不执行filerev任务。这是修改原始html文件的任务。