2016-01-19 2 views
0

Я пытаюсь использовать grunt-postcss с autoprefixer, но css не получает префикса. Autoprefixer создает новые файлы, но не префикс. Ошибка отсутствует.grunt-postcss autoprefixer не добавляет префиксы, но создает новые файлы

Вот мой gruntfile:

  postcss: { 
       options: { 
        map: true, 
        processors: [ 
         require('autoprefixer')({ 
          browsers: ['last 2 versions'] 
         }) 
        ] 
       }, 
       files: { 
        '<%= pathBuild %>/<%= pathAssets %>/<%= pathRio %>/css/rio-layout.prefixed.css': '<%= pathBuild %>/<%= pathAssets %>/<%= pathRio %>/css/rio-layout.css', 
        '<%= pathBuild %>/<%= pathAssets %>/<%= pathRio %>/css/theme.prefixed.css': '<%= pathBuild %>/<%= pathAssets %>/<%= pathRio %>/css/theme.css' 
       } 
      } 

Что случилось?

ответ

0

Возможно, у вас не установлено «autoprefixer», или оно не находится в ожидаемой папке.

Убедитесь, что ваша папка node_modules/ имеет аналогичное дерево файлов для этого:

node_modules/ 
├── autoprefixer/ 
│ └── . . . 
├── postcss/ 
│ └── . . . 
└── . . . 

Если вы нашли autoprefixer/ отсутствует, вам нужно будет установить его.

Другая возможность заключается в том, что вы установили autoprefixer без его зависимостей (например, папка autoprefixer/ не содержит свою собственную папку node_modules/). Исправьте это, переустановить его с помощью следующей команды:

npm install autoprefixer --save-dev 

Хотя вряд ли, возможно, потребуется выполнить вышеуказанную команду с postcss, а

+0

Я установил зависимости с моим пакетом json-файла и получаю соответствующую структуру папок, а Autoprefixer создает новые файлы. '{ "имя": "***", "версия": "1.1.0", "Описание": "***", "ключевые слова": [ "*" ], "автор": "***", "devDependencies": { "grunt": "~ 0.4.5", "grunt-contrib-clean": "latest", "grunt-contrib-concat" : «последняя», «grunt-contrib-copy»: «последняя», «grunt-contrib-less»: «последняя», «grunt-postcss»: «последняя», «autoprefixer»: «последняя», , "grunt-contrib-uglify": "последняя", "grunt-contrib-watch": "la тест " } }' –

0

Это было сводит меня с ума от и за последние пару недель, и я нашел ответ, который работает для меня. Найденный в Bootstrap Gruntfile.js. Вот что я думаю, проблема:

С примером примера grunt-postcss, возможно, «последние 2 версии» в опции браузеров является заполнителем. Когда я заменил в массиве браузеров из Bootstrap Gruntfile.js, мои префиксы вывода postcss начали соответствовать префиксам файла Bootstrap dist css. Вот полная конфигурация, которую я использовал:

grunt.initConfig({ 
    postcss: { 
    options: { 
     map: { 
      inline: false, 
     }, 

     processors: [ 
     require('autoprefixer')([ 
      "Android 2.3", 
      "Android >= 4", 
      "Chrome >= 20", 
      "Firefox >= 24", 
      "Explorer >= 8", 
      "iOS >= 6", 
      "Opera >= 12", 
      "Safari >= 6" 
     ]), 
     ] 
    }, 
    dist: { 
     src: 'css/*.css' 
    } 
    } 
}); 
Смежные вопросы