Почему мой автопрефиксер grunt не работает?

Я не знаю почему, но через некоторое время этот код перестал работать. Он минимизирует код, но не добавляет префиксы поставщиков. Я также хотел бы добавить другие файлы в css, например, нормализовать, но это тоже не сработало. Вот код:

  grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),

uglify: {
  dist: {
    options: {
      banner: '/*! <%= pkg.name %> <%= pkg.version %> filename.min.js <%= grunt.template.today("yyyy-mm-dd h:MM:ss TT") %> */\n',
    },
    files: {
      'js/scripts.min.js' : [

      ]
    }
  },
  dev: {
    options: {
      banner: '/*! <%= pkg.name %> <%= pkg.version %> filename.js <%= grunt.template.today("yyyy-mm-dd h:MM:ss TT") %> */\n',
      beautify: true,
      compress: false,
      mangle: false
    },
    files: {
      'js/scripts.js' : [

      ]
    }
  }
},
sass: {
  dist: {
    options: {
      compass: true,
      style: 'expanded'
    },
    files: [{
      expand: true,
      cwd: 'sass',
      src: [
        'style.scss'
      ],
      dest: 'css',
      ext: '.css'
    }]
  }
},
watch: {
  styles: {
    files: ['**/*.scss'],
    tasks: ['style']
  }
},
postcss: {
  options: {
    map: {
      inline: false, // save all sourcemaps as separate files...
      annotation: 'css/maps/' // ...to the specified directory
    },

    processors: [
      require('pixrem')(), // add fallbacks for rem units
      require('autoprefixer')({browsers: ['last 3 versions']}), // add vendor prefixes
      require('cssnano')() // minify the result
    ]
  },
  dist: {
    src: 'css/style.css',
    dest: 'css/styles.min.css'
  }

}});

Редактировать, я включил весь файл grunt во фрагмент.

module.exports = function(grunt) {

  // Project configuration.
  grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),

    uglify: {
      dist: {
        options: {
          banner: '/*! <%= pkg.name %> <%= pkg.version %> filename.min.js <%= grunt.template.today("yyyy-mm-dd h:MM:ss TT") %> */\n',
        },
        files: {
          'js/scripts.min.js' : [

          ]
        }
      },
      dev: {
        options: {
          banner: '/*! <%= pkg.name %> <%= pkg.version %> filename.js <%= grunt.template.today("yyyy-mm-dd h:MM:ss TT") %> */\n',
          beautify: true,
          compress: false,
          mangle: false
        },
        files: {
          'js/scripts.js' : [

          ]
        }
      }
    },
    sass: {
      dist: {
        options: {
          compass: true,
          style: 'expanded'
        },
        files: [{
          expand: true,
          cwd: 'sass',
          src: [
            'style.scss'
          ],
          dest: 'css',
          ext: '.css'
        }]
      }
    },
    watch: {
      styles: {
        files: ['**/*.scss'],
        tasks: ['style']
      }
    },
    postcss: {
      options: {
        map: {
          inline: false, // save all sourcemaps as separate files...
          annotation: 'css/maps/' // ...to the specified directory
        },

        processors: [
          require('pixrem')(), // add fallbacks for rem units
          require('autoprefixer')({browsers: ['last 3 versions']}), // add vendor prefixes
          require('cssnano')() // minify the result
        ]
      },
      dist: {
        src: 'css/style.css',
        dest: 'css/styles.min.css'
      }

    }

  });



  grunt.loadNpmTasks('grunt-contrib-uglify');
  grunt.loadNpmTasks('grunt-contrib-sass');
  grunt.loadNpmTasks('grunt-contrib-watch');
  grunt.loadNpmTasks('grunt-postcss');

  // Default task(s).
  grunt.registerTask('style', [
    'sass',
    'postcss'
  ]);

  // Default task(s).
  grunt.registerTask('default', [
    'uglify:dist',
    'sass',
    'postcss',
    'watch'
  ]);

};


person El Danielo    schedule 22.02.2016    source источник
comment
Эль Даниело, покажи, как ты задействуешь задачу postcss.processors? кажется, вы не предоставили всю конфигурацию gruntJS и определение задач. Вам нужно выполнить grunt.loadNpmTasks('grunt-postcss'); сначала куда-нибудь, а потом уже исполнять.   -  person Farside    schedule 22.02.2016
comment
Это здесь. Не знаю почему, но я не мог вставить весь код.   -  person El Danielo    schedule 22.02.2016
comment
у вас есть предупреждения в консоли? Можете ли вы проверить, работали ли pixrem и cssnano нормально, а не только процессор autoperfixer?   -  person Farside    schedule 22.02.2016
comment
Все работает нормально, ошибок нет. Css карта сгенерирована, код минимизирован, просто нет префиксов вендора   -  person El Danielo    schedule 22.02.2016


Ответы (1)


Я думаю, проблема может быть в том, что он не поддерживает директиву последних 3 версий, поэтому ничего не добавляет.

Вот ссылка на возможные параметры, которые может интерпретировать процессор автоперфикса: https://github.com/ai/browserslist

Попробуйте использовать что-то похожее:

last 2 versions

надеюсь, это поможет, так как все остальное кажется правильным.

person Farside    schedule 22.02.2016