Как скомпилировать или преобразовать sass / scss в css с помощью node-sass (no Ruby)?


Я боролся с настройкой libsass, поскольку это было не так прямолинейно, как транспилер на основе Ruby. Может кто-нибудь объяснить как:

  1. установить libsass?
  2. использовать его из командной строки?
  3. использовать его с задачей бегунов, как глоток и хрюканье?

У меня мало опыта работы с менеджерами пакетов и еще меньше с бегунами задач.

3 58

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

примеры:

  1. $ node-sass my-styles.scss my-styles.css компилирует в один файл вручную.
  2. $ node-sass my-sass-folder/ -o my-css-folder/ компилирует все файлы в папку вручную.
  3. $ 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:

  1. добавить узел-джип предпосылки при запуске от имени администратора в Powershell (это занимает некоторое время):

    > npm install --global --production windows-build-tools
    
  2. на обычная командная строка раковины (Win+R + cmd+введите) run:

    > npm install -g node-gyp
    > npm install -g node-sass
    

    The -g места эти пакеты под %userprofile%\AppData\Roaming\npm\node_modules. Вы можете проверить, что существует.

  3. проверьте, если ваш локальная учетная запись (не системный)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