简体   繁体   English

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

[英]Can Grunt minify multiple files separately, without concatenating them?

I have a Sailsjs project, and it comes with Grunt built in. Here is what tasks/register/prod.js looks like: 我有一个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'
  ]);
};

and here is my attempt to get Grunt to minify files separately tasks/config/cssmin.js : 这是我试图让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');
};

This doesn't work correctly, it only gives me main.min.css (minified) but not test.min.css. 这不能正常工作,它只给我main.min.css(缩小)但不是test.min.css。

"dist" is not a static part of the syntax, it's the name of the target. “dist”不是语法的静态部分,它是目标的名称。 You can have as many targets as you want, but you can't have two with the same name. 您可以拥有任意数量的目标,但不能有两个具有相同名称的目标。

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'
  }
});

Running "cssmin" executes both targets, "cssmin:test" runs the first one and "cssmin:main" runs the second. 运行“cssmin”执行两个目标,“cssmin:test”运行第一个,“cssmin:main”运行第二个。

The second time you set the value for the cssmin task you are overwriting your previous value, thus you are only returned main.min.css. 第二次设置cssmin任务的值时,您将覆盖以前的值,因此只返回main.min.css。

To minify multiple separate files with cssmin you would only set grunt.config once and it would look like this: 要使用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');
};

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM