grunt-requirejs - как оптимизировать CSS?

Я использую Yeoman и пытаюсь настроить requirejs для оптимизации моих CSS-файлов.

У меня есть это в моем Gruntfile.js:

requirejs: {
  css: {
    options: {
      optimizeCss: 'standard',
      cssIn: 'app/styles/main.css',
      out: 'app/styles/main.min.css'
    }
  }
}

Когда я запускаю команду сборки, я получаю сообщение об ошибке:

grunt build

Running "requirejs:css" (requirejs) task
>> Error: TypeError: new path must be a string
>>     at Object.fs.renameSync (fs.js:439:18)
Warning: Task "requirejs:css" failed

Я не совсем уверен, что там происходит, или как это отладить.

Кто-нибудь знает, в чем может быть проблема?

1 ответ

Неважно, я решил это.

Глупый useminPrepare задача, которая поставляется вместе с Yeoman, с конфигурацией grunt-requirejs. Вид раздражает, особенно поскольку я хотел использовать grunt-requirejs, потому что мне не нравилось, как usemin работал с самого начала.

ОБНОВИТЬ:

Это моя конфигурация, которая работает:

//index.html:

<!-- build:js scripts/scripts.js -->
<script data-main="scripts/main" src="components/requirejs/require.js"></script>
<!-- endbuild -->


//Gruntfile.js:

requirejs: {
  js: {
    options: {
      baseUrl: '<%= yeoman.tmp %>/scripts',
      out: '<%= yeoman.dist %>/scripts/scripts.js',
      name: 'main',
      optimize: 'none',
      mainConfigFile: '<%= yeoman.app %>/scripts/main.js',
      useStrict: true,
      wrap: true
    }
  },
  css: {
    options: {
      optimizeCss: 'standard',
      cssIn: '<%= yeoman.app %>/styles/main.css',
      out: '<%= yeoman.dist %>/styles/main.css'
    }
  }
},
useminPrepare: {
  html: '<%= yeoman.app %>/index.html',
  options: {
    dest: '<%= yeoman.dist %>'
  }
},
usemin: {
  html: '<%= yeoman.dist %>/index.html',
  options: {
    dirs: ['<%= yeoman.dist %>']
  }
}

grunt.registerTask('build', [
  'requirejs:js',
  'requirejs:css',
  'useminPrepare', //must be after requirejs:css as it breaks its config params
  'usemin'
]);

ПРИМЕЧАНИЕ. В grunt-usemin по-прежнему существует ошибка, из-за которой он (неправильно) пытается изменить конфигурацию requirejs для конфигурации requirejs: css. Я сообщил, что здесь

Другие вопросы по тегам