Как скомпилировать или преобразовать sass / scss в css с помощью node-sass (no Ruby)?
Я боролся с настройкой libsass, поскольку это было не так прямолинейно, как транспилер на основе Ruby. Может кто-нибудь объяснить как:
- установить libsass?
- использовать его из командной строки?
- использовать его с задачами бегунов, как глотать и ворчать?
У меня мало опыта работы с менеджерами пакетов и тем более с бегунами задач.
3 ответов
я выбрал node-sass implementer для libsass, потому что он основан на узле.js.
установка узла-sass
- (необходимое условие) если у вас нет npm, установите узел.js первый.
-
$ npm install -g node-sassустанавливает узел-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/"toscriptsна . Это должно выглядеть примерно так:
"scripts": {
"test" : "bla bla bla",
"sass": "node-sass -w sass/ -o css/"
}
-
$ npm run sassскомпилирует ваши файлы.
как использовать с gulp
-
$ npm install -g gulpустанавливает залпом во всем мире. - если нет
package.jsonфайл в каталоге проекта работает$ npm initзделал. Используйте его с-y, чтобы пропустить вопросы. -
$ npm install --save-dev gulpустанавливает Gulp локально.--save-devдобавляетgulptodevDependenciesнаpackage.json. -
$ npm install gulp-sass --save-devустанавливает gulp-sass локально. - Setup gulp для вашего проекта, создав
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
как следует из имени node-sass, вы можете написать свой собственный узел.js скрипты для transpiling. Если ты ... любопытно, проверьте страницу проекта 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, node-sass в настоящее время поддерживает VS2015 по умолчанию, если у вас есть только VS2013 в вашем поле и встретить любую ошибку во время выполнения команды, вы можете определить версию VS, добавив: --msvs_version=2013. Это отмечено на страница node-sass npm.
Итак, безопасная командная строка, которая работает в Windows с VS2013: npm install --msvs_version=2013 узел gulp-sass gulp-sass
в Windows 10 с помощью узел В6.11.2 и npm v3.10.10, для того чтобы выполнить непосредственно в любую папку:
> node-sass [options] <input.scss> [output.css]
я только следовал инструкциям в узел-sass Github:
-
добавить node-gyp предпосылки Запуск от имени администратора в Powershell (это занимает некоторое время):
> npm install --global --production windows-build-tools -
на обычная командная строка раковины ( Win+R + cmd+ Enter) run:
> npm install -g node-gyp > npm install -g node-sassна
-gместа эти пакеты под%userprofile%\AppData\Roaming\npm\node_modules. Вы можете проверить это существует. -
проверьте, если ваш локальная учетная запись (не системный)
PATHпеременные среды содержит:%userprofile%\AppData\Roaming\npmесли этот путь не существует, НПМ и узел может по-прежнему работать, но модули bin файлы не будут!
закрыть предыдущую оболочку и открыть новый и запустить либо > node-gyp или > node-sass.
Примечание:
- на
windows-build-toolsможет и не надо (если компиляция не выполняется? Я хотел бы прочитать, если кто-то сделал это без установки этих инструментов), но он добавил в учетную запись администратораGYP_MSVS_VERSIONпеременной окружения с2015как ценность. - я также могу работать непосредственно другие модули с bin файлы, такие как
> uglifyjs main.js main.min.jsи> mocha