Как скомпилировать или преобразовать sass / scss в css с помощью node-sass (no Ruby)?
Я боролся с настройкой libsass, поскольку это было не так прямолинейно, как транспилер на основе Ruby. Может кто-нибудь объяснить как:
- установить libsass?
- использовать его из командной строки?
- использовать его с задачей бегунов, как глоток и хрюканье?
У меня мало опыта работы с менеджерами пакетов и еще меньше с бегунами задач.
3 ответа:
я выбрал node-sass implementer для libsass, потому что он основан на узле.js.
установка узла-sass
- (обязательное условие) если у вас нет npm, установите узел.js первый.
$ npm install -g node-sass
устанавливает node-sass глобально-g
.это, надеюсь, установить все, что вам нужно, если не читать libsass в нижней части.
как использовать node-sass из командной строки и npm скрипты
общий формат:
$ node-sass [options] <input.scss> [output.css] $ cat <input.scss> | node-sass > output.css
примеры:
$ node-sass my-styles.scss my-styles.css
компилирует в один файл вручную.$ node-sass my-sass-folder/ -o my-css-folder/
компилирует все файлы в папку вручную.$ node-sass -w sass/ -o css/
компилирует все файлы в папке автоматически при каждом изменении исходного файла(ов).-w
добавляет часы для изменений в файл(ы).более полезные параметры, такие как "сжатие"@ здесь. Командная строка хороша для быстрого решения, однако вы можете использовать бегунов задач, таких как Grunt.js или глоток.JS для автоматизации процесса сборки.
вы также можете добавить приведенные выше примеры в сценарии npm. Чтобы правильно использовать сценарии npm в качестве альтернатива залпом читать эта всеобъемлющая статья @ css-tricks.com особенно читайте о задачи группирования.
- если нет
package.json
файл в каталоге вашего проекта работает$ npm init
зделал. Используйте его с-y
, чтобы пропустить вопросы.- добавить
"sass": "node-sass -w sass/ -o css/"
доscripts
на . Это должно выглядеть примерно так:"scripts": { "test" : "bla bla bla", "sass": "node-sass -w sass/ -o css/" }
$ npm run sass
скомпилирует ваши файлы.как использовать с залпом
$ npm install -g gulp
устанавливает залпом во всем мире.- если нет
package.json
файл в каталоге вашего проекта работает$ npm init
зделал. Используйте его с-y
, чтобы пропустить вопросы.$ npm install --save-dev gulp
устанавливает глоток локально.--save-dev
добавляетgulp
доdevDependencies
наpackage.json
.$ npm install gulp-sass --save-dev
устанавливает gulp-sass локально.- настройка глоток для вашего проекта, создав
gulpfile.js
файл в корневой папке проекта с таким содержанием:'use strict'; var gulp = require('gulp');
основной пример для транспилирования
добавьте этот код в свой gulpfile.js:
var gulp = require('gulp'); var sass = require('gulp-sass'); gulp.task('sass', function () { gulp.src('./sass/**/*.scss') .pipe(sass().on('error', sass.logError)) .pipe(gulp.dest('./css')); });
$ gulp sass
работает выше задача, которая компилирует .SCSS файл(ы) вsass
папка и генерирует .CSS-файл(ы) в .чтобы сделать жизнь проще, давайте добавим часы, так что нам не придется компилировать его вручную. Добавьте этот код в свой
gulpfile.js
:gulp.task('sass:watch', function () { gulp.watch('./sass/**/*.scss', ['sass']); });
теперь все готово! Просто запустите задачу watch:
$ gulp sass:watch
как использовать с узлом.js
как следует из названия узла-sass, вы можете написать свой собственный узел.js скрипты для транспилинга. Если вы не любопытно, проверьте страницу проекта node-sass.
а как насчет libsass?
Libsass-это библиотека, которая должна быть построена разработчиком, таким как sassC или в нашем случае node-sass. Node-sass содержит встроенную версию libsass, которую он использует по умолчанию. Если файл сборки не работает на вашем компьютере, он пытается построить libsass для вашего компьютера. Для этого процесса требуется Python 2.7.x (3.x не работает на сегодняшний день). Кроме того:
LibSass требует GCC 4.6+ или Clang / LLVM. Если ваша ОС старше, эта версия может не компилироваться. В Windows вам нужно MinGW с GCC 4.6+ или VS 2013 Update 4+. Также можно построить LibSass с Clang / LLVM на Windows.
установка этих инструментов может отличаться в разных ОС.
в Windows, node-sass в настоящее время поддерживает VS2015 по умолчанию, если у вас есть только VS2013 в вашем поле и встретить любую ошибку во время выполнения команды, вы можете определить версию VS, добавив: --msvs_version=2013. Это отмечено на node-sass npm page.
Итак, безопасная командная строка, которая работает в Windows с VS2013, является: npm install --msvs_version=2013 gulp node-sass gulp-sass
в Windows 10 с помощью узел В6.11.2 и НПМ В3.10.10, чтобы выполнить непосредственно в любой папке:
> node-sass [options] <input.scss> [output.css]
я только следовал инструкциям в node-sass Github:
добавить узел-джип предпосылки при запуске от имени администратора в Powershell (это занимает некоторое время):
> npm install --global --production windows-build-tools
на обычная командная строка раковины (Win+R + cmd+введите) run:
> npm install -g node-gyp > npm install -g node-sass
The
-g
места эти пакеты под%userprofile%\AppData\Roaming\npm\node_modules
. Вы можете проверить, что существует.проверьте, если ваш локальная учетная запись (не системный)
PATH
переменные среды содержит:%userprofile%\AppData\Roaming\npm
если этот путь не существует, npm и узел все еще может работать, но модули bin файлов не будет!
закройте предыдущую оболочку и снова открыть новый и запустить либо
> node-gyp
или> node-sass
.Примечание:
- The
windows-build-tools
может и не надо (если компиляция не выполняется? Я хотел бы прочитать, если кто-то сделал это без установки этих инструментов), но он добавил в учетную запись администратораGYP_MSVS_VERSION
переменной окружения с2015
как ценность.- я также могу работать непосредственно другие модули с bin файлы, такие как
> uglifyjs main.js main.min.js
и> mocha