Задать вопрос
@vasya2004

В чем разница между node-sass и gulp-sass?

Привет всем! Глупый вопрос, но в чем разница между gulp-sass и node-sass для установки через npm в gulp?
Вопрос изначально возник из-за ошибки при установке gulp-sass в сборку:

D:\SM\Layout\s\s1>npm i gulp-sass --save-dev
npm WARN deprecated har-validator@5.1.5: this library is no longer supported
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm ERR! code 1
npm ERR! path D:\SM\Layout\s\s1\node_modules\node-sass
npm ERR! command failed
npm ERR! command C:\WINDOWS\system32\cmd.exe /d /s /c "node scripts/build.js"
npm ERR! Building: D:\Программы\node.exe D:\SM\Layout\s\s1\node_modules\node-gyp\bin\node-gyp.js rebuild --verbose --libsass_ext= --libsass_cflags= --libsass_ldflags= --libsass_library=
npm ERR! gyp info it worked if it ends with ok
npm ERR! gyp verb cli [
npm ERR! gyp verb cli 'D:\\Программы\\node.exe',
npm ERR! gyp verb cli 'D:\\SM\\Layout\\s\\s1\\node_modules\\node-gyp\\bin\\node-gyp.js',
npm ERR! gyp verb cli 'rebuild',
npm ERR! gyp verb cli '--verbose',
npm ERR! gyp verb cli '--libsass_ext=',
npm ERR! gyp verb cli '--libsass_cflags=',
npm ERR! gyp verb cli '--libsass_ldflags=',
npm ERR! gyp verb cli '--libsass_library='
npm ERR! gyp verb cli ]
npm ERR! gyp info using node-gyp@3.8.0
npm ERR! gyp info using node@15.1.0 | win32 | x64
npm ERR! gyp verb command rebuild []
npm ERR! gyp verb command clean []
npm ERR! gyp verb clean removing "build" directory
npm ERR! gyp verb command configure []
npm ERR! gyp verb check python checking for Python executable "python2" in the PATH
npm ERR! gyp verb `which` failed Error: not found: python2
npm ERR! gyp verb `which` failed at getNotFoundError (D:\SK\Layout\s\s1\node_modules\which\which.js:13:12)
npm ERR! gyp verb `which` failed at F (D:\SM\Layout\s\s1\node_modules\which\which.js:68:19)
npm ERR! gyp verb `which` failed at E (D:\SM\Layout\s\s1\node_modules\which\which.js:80:29)
npm ERR! gyp verb `which` failed at D:\SM\Layout\s\s1\node_modules\which\which.js:89:16
npm ERR! gyp verb `which` failed at D:\SM\Layout\s\s1\node_modules\isexe\index.js:42:5
npm ERR! gyp verb `which` failed at D:\SM\Layout\s\s1\node_modules\isexe\windows.js:36:5
npm ERR! gyp verb `which` failed at FSReqCallback.oncomplete (node:fs:183:21)
npm ERR! gyp verb `which` failed python2 Error: not found: python2
npm ERR! gyp verb `which` failed at getNotFoundError (D:\SM\Layout\s\s1\node_modules\which\which.js:13:12)
npm ERR! gyp verb `which` failed at F (D:\SM\Layout\s\s1\node_modules\which\which.js:68:19)
npm ERR! gyp verb `which` failed at E (D:\SM\Layout\s\s1\node_modules\which\which.js:80:29)
npm ERR! gyp verb `which` failed at D:\SM\Layout\s\s1\node_modules\which\which.js:89:16
npm ERR! gyp verb `which` failed at D:\SM\Layout\s\s1\node_modules\isexe\index.js:42:5
npm ERR! gyp verb `which` failed at D:\SM\Layout\s\s1\node_modules\isexe\windows.js:36:5
npm ERR! gyp verb `which` failed at FSReqCallback.oncomplete (node:fs:183:21) {
npm ERR! gyp verb `which` failed code: 'ENOENT'
npm ERR! gyp verb `which` failed }
npm ERR! gyp verb check python checking for Python executable "python" in the PATH
npm ERR! gyp verb `which` succeeded python D:\Python\Python38-32\python.EXE
npm ERR! gyp ERR! configure error
npm ERR! gyp ERR! stack Error: Command failed: D:\Python\Python38-32\python.EXE -c import sys; print "%s.%s.%s" % sys.version_info[:3];
npm ERR! gyp ERR! stack File "", line 1
npm ERR! gyp ERR! stack import sys; print "%s.%s.%s" % sys.version_info[:3];
npm ERR! gyp ERR! stack ^
npm ERR! gyp ERR! stack SyntaxError: invalid syntax
npm ERR! gyp ERR! stack
npm ERR! gyp ERR! stack at ChildProcess.exithandler (node:child_process:309:12)
npm ERR! gyp ERR! stack at ChildProcess.emit (node:events:327:20)
npm ERR! gyp ERR! stack at maybeClose (node:internal/child_process:1055:16)
npm ERR! gyp ERR! stack at Process.ChildProcess._handle.onexit (node:internal/child_process:288:5)
npm ERR! gyp ERR! System Windows_NT 10.0.18363
npm ERR! gyp ERR! command "D:\\Программы\\node.exe" "D:\\SM\\Layout\\s\\s1\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library="
npm ERR! gyp ERR! cwd D:\SM\Layout\s\s1\node_modules\node-sass
npm ERR! gyp ERR! node -v v15.1.0
npm ERR! gyp ERR! node-gyp -v v3.8.0
npm ERR! gyp ERR! not ok
npm ERR! Build failed with error code: 1

npm ERR! A complete log of this run can be found in:
npm ERR! C:\User\Comp\AppData\Local\npm-cache\_logs\2020-12-02T12_02_52_602Z-debug.log

В попытках найти решение в интернете увидел, что кто-то ставит просто gulp-sass или node-sass, кто-то сразу оба.
Так в чем же их разница и как исправить данную ошибку? Заранее спасибо
  • Вопрос задан
  • 673 просмотра
Подписаться 1 Простой 2 комментария
Пригласить эксперта
Ответы на вопрос 1
delphinpro
@delphinpro Куратор тега Sass
frontend developer
Как же часто встречается этот вопрос про ошибку node-sass...

Установите себе на машину Python второй версии.
Установите отдельно глобально node-gyp (npm i -g).
И пакет node-sass будет нормально собираться.

Если скорость сборки не сильно важна, или если хочется пользоваться новейшими фишками sass — используйте не порт node-sass, а оригинал dart-sass. Он является официальным компилятором, обновляется чаще и написан исключительно на javascript (точнее на дарте, но не суть, компилятор джаваскриптовый). С ним не будет никаких проблем, кроме просадки по скорости сборки.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы