Javascript Grunt可以单独缩小多个文件而不连接它们吗?

Javascript Grunt可以单独缩小多个文件而不连接它们吗?,javascript,gruntjs,sails.js,Javascript,Gruntjs,Sails.js,我有一个Sailsjs项目,它内置了Grunt。以下是tasks/register/prod.js的外观: module.exports = function(grunt) { grunt.registerTask('prod', [ 'compileAssets', //'concat', 'uglify', 'cssmin', 'sails-linker:prodJs', 'sails-linker:prodStyles', //'

我有一个Sailsjs项目,它内置了Grunt。以下是
tasks/register/prod.js
的外观:

module.exports = function(grunt) {
  grunt.registerTask('prod', [
    'compileAssets',
    //'concat',
    'uglify',
    'cssmin',
    'sails-linker:prodJs',
    'sails-linker:prodStyles',
    //'sails-linker:devTpl',
    //'sails-linker:prodJsJade',
    //'sails-linker:prodStylesJade',
    //'sails-linker:devTplJade'
  ]);
};
下面是我尝试让Grunt分别缩小文件的
tasks/config/cssmin.js

module.exports = function(grunt) {

  grunt.config.set('cssmin', {
    dist: {
      src: 'assets/css/test.css',
      dest: '.tmp/public/min/test.min.css'
    }
  });

  grunt.config.set('cssmin', {
    dist: {
      src: 'assets/css/main.css',
      dest: '.tmp/public/min/main.min.css'
    }
  });

  grunt.loadNpmTasks('grunt-contrib-cssmin');
};
这不能正常工作,它只提供main.min.css(minified)而没有test.min.css。

dist不是语法的静态部分,它是目标的名称。您可以有任意多个目标,但不能有两个同名的目标

grunt.config.set('cssmin', {
  test: {
    src: 'assets/css/test.css',
    dest: '.tmp/public/min/test.min.css'
  },
  main: {
    src: 'assets/css/main.css',
    dest: '.tmp/public/min/main.min.css'
  }
});

运行“cssmin”将执行两个目标,“cssmin:test”将运行第一个目标,“cssmin:main”将运行第二个目标。

第二次为cssmin任务设置值时,您将覆盖以前的值,因此只返回main.min.css

要使用cssmin缩小多个单独的文件,只需设置grunt.config一次,如下所示:

module.exports = function(grunt) {

  grunt.config.set('cssmin', {

    dist: {
      src: 'assets/css/test.css',
      dest: '.tmp/public/min/test.min.css'
    },

    dist2: {
      src: 'assets/css/main.css',
      dest: '.tmp/public/min/main.min.css'
    }

  });

  grunt.loadNpmTasks('grunt-contrib-cssmin');
};