Jak skompilować lub przekonwertować Sass / scss do css za pomocą node-sass (bez Ruby)?

Zmagałem się z konfiguracją libsass, ponieważ nie było to tak proste, jak transpiler oparty na Ruby. Mógłby ktoś wyjaśnić jak:

  1. zainstalować libsass?
  2. użyć go z linii poleceń?
  3. używać go z biegaczami zadań, takimi jak gulp i grunt?

Mam małe doświadczenie z menedżerami pakietów, a tym bardziej z biegaczami zadań.

Author: Thoran, 2015-07-16

3 answers

Wybrałem implementer node-sass dla libsass, ponieważ jest on oparty na node.js.

Instalowanie node-sass

  • (warunek) jeśli nie masz npm, zainstaluj Node.js pierwszy.
  • $ npm install -g node-sass instaluje node-sass globalnie -g.

To, miejmy nadzieję, zainstaluje wszystko, czego potrzebujesz, jeśli nie odczytasz libsass na dole.

Jak używać node-sass z linii poleceń i skryptów npm

Ogólne format:

$ node-sass [options] <input.scss> [output.css]
$ cat <input.scss> | node-sass > output.css

Przykłady:

  1. $ node-sass my-styles.scss my-styles.css kompiluje pojedynczy plik ręcznie.
  2. $ node-sass my-sass-folder/ -o my-css-folder/ kompiluje wszystkie pliki w folderze ręcznie.
  3. $ node-sass -w sass/ -o css/ kompiluje wszystkie pliki w folderze automatycznie za każdym razem, gdy pliki źródłowe są modyfikowane. -w dodaje zegarek dla zmian w pliku (- ACH).

Więcej użytecznych opcji, takich jak 'kompresja' @ here . Wiersz poleceń jest dobry do szybkiego rozwiązania, jednak można użyć runnerów zadań, takich jak Grunt.js lub Łyk.js do automatyzacji procesu budowania.

Możesz również dodać powyższe przykłady do skryptów npm. Aby poprawnie używać skryptów npm jako alternatywy dla gulp przeczytaj ten obszerny artykuł @ css-tricks.com szczególnie poczytaj o grupowaniu zadań .

  • jeśli w katalogu projektu nie ma pliku package.json, który działa $ npm init, utworzy go. Użyj go z -y, aby pominąć pytania.
  • dodaj "sass": "node-sass -w sass/ -o css/" do scripts W package.json pliku. Powinno wyglądać coś takiego:
"scripts": {
    "test" : "bla bla bla",
    "sass": "node-sass -w sass/ -o css/"
 }
  • $ npm run sass skompiluje Twoje pliki.

Jak używać z gulp

  • $ npm install -g gulp instaluje Gulp globalnie.
  • jeśli w katalogu projektu nie ma pliku package.json, który działa $ npm init, utworzy go. Użyj go z -y, aby pominąć pytania.
  • $ npm install --save-dev gulp instaluje Gulp lokalnie. --save-dev dodaje gulp do devDependencies W package.json.
  • $ npm install gulp-sass --save-dev instaluje gulp-sass lokalnie.
  • Konfiguracja gulp dla Twojego projektu przez tworzenie pliku gulpfile.js w folderze głównym projektu o tej zawartości:
'use strict';
var gulp = require('gulp');

Podstawowe przykłady do transpile

Dodaj ten kod do pliku 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 uruchamia powyższe zadanie, które kompiluje .plików scss w folderze sass i generuje .pliki css w folderze css.

Aby ułatwić życie, dodajmy zegarek, abyśmy nie musieli go kompilować ręcznie. Dodaj ten kod do swojego gulpfile.js:

gulp.task('sass:watch', function () {
  gulp.watch('./sass/**/*.scss', ['sass']);
});

Wszystko gotowe! Just run zadanie czuwania:

$ gulp sass:watch

Jak używać z Node.js

Jak sugeruje nazwa node-sass, możesz napisać swój własny węzeł.Skrypty js do transpilingu. Jeśli jesteś ciekawy, sprawdź stronę projektu node-sass.

A co z libsass?

Libsass jest biblioteką, która musi być zbudowana przez implementatora, takiego jak sassC lub w naszym przypadku node-sass. Node-sass zawiera wbudowaną wersję libsass, której używa domyślnie. Jeśli plik kompilacji nie działa na twoim komputerze, próbuje zbuduj libsass dla swojej maszyny. Ten proces wymaga Pythona 2.7.x (3 .x nie działa od dziś). Dodatkowo:

LibSass wymaga GCC 4.6+ lub Clang / LLVM. Jeśli System Operacyjny jest starszy, ta wersja może nie być skompilowana. W systemie Windows potrzebujesz MinGW z GCC 4.6 + lub VS 2013 Update 4+. Możliwe jest również zbudowanie LibSass z Clang / LLVM na Windows.

 169
Author: Thoran,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-01 06:24:49

Instalacja tych narzędzi może się różnić w zależności od systemu operacyjnego.

W systemie Windows node-sass domyślnie obsługuje VS2015, jeśli masz tylko VS2013 i napotkasz jakikolwiek błąd podczas uruchamiania polecenia, możesz zdefiniować wersję VS dodając: --msvs_version=2013. Jest to odnotowane na node-sass npm Strona.

Więc bezpieczna linia poleceń, która działa w systemie Windows z VS2013 jest: npm install --msvs_version=2013 gulp node-sass gulp-sass

 5
Author: Brian Ng,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-08 04:51:00

W Windows 10 za pomocą node v6.11.2 i npm v3.10.10, w celu wykonania bezpośrednio w dowolnym folderze:

> node-sass [options] <input.scss> [output.css]

Wykonałem tylko instrukcje w Node-Sass Github :

  1. Jeśli nie masz dostępu do Internetu, możesz skorzystać z tej opcji, aby uzyskać dostęp do Internetu.]}
    > npm install --global --production windows-build-tools
    
  2. In a normal command-line shell ( Win+R + cmd+ Enter ) run:

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

    The -g umieszcza te pakiety Pod %userprofile%\AppData\Roaming\npm\node_modules. Możesz sprawdzić, czy npm\node_modules\node-sass\bin\node-sass Teraz istnieje.

  3. Sprawdź czy Twoje konto lokalne (Nie System) PATH zmienna środowiskowa zawiera:

    %userprofile%\AppData\Roaming\npm
    

    Jeśli ta ścieżka nie jest obecna, npm i node mogą nadal działać, ale pliki modułów bin nie będą działać!

Zamknij poprzednią powłokę i ponownie otwórz nową i uruchom > node-gyp lub > node-sass.

Uwaga:

  • The windows-build-tools may not be necessary (if no compiling is done? Chciałbym przeczytać, Czy ktoś zrobił to bez instalacji tych narzędzi), ale to dodało do konta administratora zmienną środowiskową GYP_MSVS_VERSION z 2015 jako wartością.
  • jestem również w stanie uruchomić bezpośrednio inne moduły z bin plików, takich jak > uglifyjs main.js main.min.js i > mocha
 1
Author: Armfoot,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-21 17:40:48