Подтвердить что ты не робот

Grunt: uglify css файлы с uglifyjs

Я использую grunt для uglify моих статических файлов (используя grunt v0.4.0). Я настроил его для обнуления одного файла, но я не могу понять, как заставить его делать два файла - несмотря на чтение этого вопроса и примеры использования.

Вот что у меня есть:

uglify: {
  options: {
    banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n',
    mangle: true
  },
  build: {
    src: 'dist/main.js',
    dest: 'dist/main.min.js'
  }
}

Я хотел бы также угадать dist/main.css. Как я могу добавить его? Я пробовал это, следуя примерам использования:

uglify: {
  options: {
    banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n',
    mangle: true
  },
  build: {
    files: {
      'dist/main.min.js': ['dist/main.js'],
      'dist/main.min.css': ['dist/main.css']
    }
  }
}

Но это дает мне следующую ошибку:

WARN: ERROR: Unexpected token: punc ({) [dist/main.css:7,41]
Warning: Uglification failed. Use --force to continue.
Aborted due to warnings.

Кажется, он задыхается от первого { - почему это произойдет? Это действительно CSS.

4b9b3361

Ответ 1

Uglify предназначен для Javascript, а не для CSS. Попробуйте использовать http://github.com/gruntjs/grunt-contrib-cssmin для минимизации CSS с помощью Grunt.

Ответ 2

Uglify предназначен только для Javascript, но YUI Compressor может выполнять как Javascript, так и CSS: YUI Compressor

Ответ 3

Существует аналогичное решение под названием UglifyCSS (https://github.com/fmarcia/UglifyCSS):

shell: uglifycss "source.css" > "output.min.css"

Где ведет себя как UglifyJS.