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. Я сообщил, что здесь