Я пытаюсь создать очень простую систему сборки с Grunt в окнах, используя Cygwin для обработки компиляции, конкатенации и минимизации моих файлов scss/css и coffee/js.Sass не распознан Grunt в Cygwin
У меня проблема с Грунтом, не признающим Сасса как команду.
Следует отметить, что тот же файл Gruntfile, те же задачи, те же пакеты отлично работают на Linux (почему, конечно!), И эта проблема связана исключительно с реализацией одной и той же системы в Windows.
я правильно установлен на Ruby и Sass (как «рубин -v» и «дерзость -v» работать, как ожидалось), и у меня нет никаких проблем с компиляцией SCSS в CSS из командной строки
$ sass --update sass:css
и это эффективно конвертирует все .scss-файлы в .css
Grunt сам работает без проблем, компилирует кофе в js, конкатенирует js или css-файлы, уменьшая их и наблюдая за изменениями.
здесь полный Gruntfile.js
, для справки
module.exports = function(grunt) {
grunt.initConfig({
concat: {
js: {
src: 'js/*.js',
dest: 'build/js/scripts.js',
},
css: {
src: 'css/*.css',
dest: 'build/css/theme.css',
},
},
uglify: {
jsMin : {
files: {
'build/js/scripts.min.js' : ['build/js/scripts.js']
},
},
},
cssmin: {
styleMin : {
files : {
'build/css/theme.min.css' : ['build/css/theme.css']
},
},
},
watch: {
jsW: {
files: ['js/**/*.js'],
tasks: ['concat:js','uglify:jsMin'],
},
cssW: {
files: ['css/**/*.css'],
tasks: ['concat:css','cssmin'],
},
sassW: {
files: ['sass/**/*.scss'],
tasks: ['exec']
}
},
exec: {
Sass : 'sass --update sass:css',
Coffee : 'coffee -o js/ -c coffee/'
}
});
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-cssmin');
grunt.loadNpmTasks('grunt-exec');
grunt.registerTask('default',['exec','concat','uglify','cssmin','watch']);
};
если тогда я начинаю grunt
он отображает следующее предупреждение
Запуск "Exec: Sass" (EXEC) задачи
'sass' не распознается как внутренняя или внешняя команда, оперативная программа или командный файл.
завершался с кодом: 1.
Внимание: Задача "Exec: Sass" не удалось. Используйте -force для продолжения.
Прервано из-за предупреждений.
как я уже говорил прежде, чем система отлично работает на Linux, так что я думаю, есть что-то не так с моими Путей, но почему же тогда будет Sass отлично работает из командной строки и не распознается через хрюкать?
последнее, что я хотел бы отметить, что, в течение некоторого копания и тестирование, чтобы попытаться угадать, в чем проблема, прежде чем отправлять здесь на SO, я обнаружил, что вызов любой функции Баша, которая имеет не .exe в cygwin/bin показывает ту же ошибку
http://i.stack.imgur.com/DGLe5.png (тестирование на файлы sass '' sdoc 'и' ruby.ехе ')
модифицированный пехотинец-Exec для тестирования:
exec: {
Sass : 'sass -v',
Ruby : 'ruby -v',
Sdoc : 'sdoc -v',
}
и они показали следующее после grunt --force
http://i.stack.imgur.com/3boy7.png
в то время как из обычной командной строки
$ sass -v && ruby -v && sdoc -v
Sass 3.4.16 (Selective Steve)
ruby 2.0.0p598 (2014-11-13) [x86_64-cygwin]
4.2.0
Я серьезно не знаю, куда идти Здесь, любая помощь будет оценена.
Вы должны проверить пакет npm под названием 'grunt-contrib-sass', он компилирует ваш sass в css. Взятие этого маршрута может помешать проблеме, имеющейся у вас сейчас. – Josh
с использованием 'grunt-contrib-sass' срабатывает при ошибке: _Warning: вам нужно установить Ruby и Sass и в PATH для выполнения этой задачи. Дополнительная информация: https://github.com/gruntjs/grunt-contrib-sass Используйте -force для продолжения. Это еще более странно, поскольку оба установлены и в моем PATH. Я добавлю обходное решение, которое я нашел в качестве ответа. – Luken00
Установите sass и ruby GLOBALY на свой компьютер. – Josh