Używam VS2015 i Gulp. Otwieram Task Runner Explorer i klikam przycisk odświeżania, co pojawia się w dzienniku:
Failed to run "C:\Projects\Test\Gulpfile.js"...
cmd.exe /c gulp --tasks-simple
Error: `libsass` bindings not found in C:\Projects\Test\node_modules\gulp-sass\node_modules\node-sass\vendor\win32-ia32-11\binding.node. Try reinstalling `node-sass`?
at Object.sass.getBinaryPath (C:\Projects\Test\node_modules\gulp-sass\node_modules\node-sass\lib\extensions.js:148:11)
at Object.<anonymous> (C:\Projects\Test\node_modules\gulp-sass\node_modules\node-sass\lib\index.js:16:36)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (C:\Projects\Test\node_modules\gulp-sass\index.js:163:21)
at Module._compile (module.js:456:26)
Próbuję więc uruchomić cmd.exe /c gulp --tasks-simple
w PowerShell, w tym samym katalogu i działa dobrze - zwraca listę zadań.
Jestem również w stanie dobrze wykonywać zadania związane z SASS, więc nie jestem pewien, dlaczego narzeka na SASS, gdy jest uruchamiany przez VS, ale nie bezpośrednio w wierszu poleceń.
Wygląda na to, że gulp-sass szuka node-sass w innej lokalizacji. Oto tymczasowe rozwiązanie.
utwórz nowy katalog o nazwie win32-ia32-11 wewnątrz c: \ Projects \ Test \ node_modules \ gulp-sass \ node_modules \ node-sass \ vendor \
Idź do https://github.com/sass/node-sass-binaries i pobierz win32-ia32-11_binding.node.
Skopiuj plik win32-ia32-11_binding.node do c: \ Projects \ Test \ node_modules \ gulp-sass \ node_modules \ node-sass \ vendor \ win32-ia32-11 \ i zmień jego nazwę na binding.node
źródło
.npmrc
plik z odpowiednią opcją konfiguracji, ale bez powodzenia. Nawet działającnpm install
na 32-bitowej konsoli PS, wersje 64-bitowe są nadal instalowane.win32-ia32-14
zamiast powiązaniawin32-ia32-11
- co z jakiegoś powodu jest tym, czegolibsass
szuka ...Wypróbowałem wszystkie powyższe rozwiązania, ale to nie działa i znalazłem tutaj inne rozwiązanie .
Musisz wymusić uruchomienie programu Visual Studio z wersją Node.js:
Tools
>Options
w programie Visual Studio 2015Projects and Solutions
>External Web Tools
C:\Program Files\nodejs
źródło
Jedynym rozwiązaniem, które rozwiązało mój problem, była ponowna instalacja NPM Task Runner. Możesz go pobrać, klikając łącze na rynku.
https://marketplace.visualstudio.com/items?itemName=MadsKristensen.NPMTaskRunner
źródło
node-sass uruchamia skrypt instalacyjny, aby pobrać wymagany plik binarny. Jeśli nie ma ustawionych zmiennych środowiskowych, zmiennych .npmrc lub argumentów procesu, plik binarny jest określany przy użyciu bieżącej platformy procesu, architektury i wersji ABI węzła. Dlatego jeśli uruchomisz instalację węzła w jednej aplikacji, a następnie spróbujesz uruchomić node-sass w aplikacji z inną platformą / architekturą / ABI, plik binarny nie zostanie pobrany. Rozwiązaniem jest ręczne pobranie pliku binarnego lub naprawienie wersji binarnej za pomocą zmiennej środowiskowej (SASS_BINARY_NAME) lub zmiennej .npmrc (sass_binary_name)
Możesz zobaczyć logikę tego w funkcji getBinaryPath w node-sass \ lib \ extensions.js
Zobacz też: Node Sass nie mógł znaleźć powiązania dla twojego obecnego środowiska
źródło