Как скомпилировать или преобразовать 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
добавляетgulp
todevDependencies
на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