Проводник Runner не может загружать задачи
Я использую VS2015 и Gulp. Я открываю проводник запуска задач и нажимаю обновление, и это отображается в журнале:
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)
Поэтому я пытаюсь запустить cmd.exe /c gulp --tasks-simple
в PowerShell, в том же каталоге, и он отлично работает - он возвращает список задач.
Я также могу просто запускать свои задачи, связанные с SASS, поэтому я не уверен, почему это жалуется на SASS, когда он запускается через VS, но не напрямую в командной строке.
Ответы
Ответ 1
У меня была та же проблема, что и в VS2013.
Как отметил Джош в своем комментарии здесь, Visual Studio 2015 поставляется с более старой версией Node. В случае, если вы не хотите зацикливаться на любой версии Node, встроенной в Visual Studio, вы можете сказать, что она использует версию, которую вы уже установили.
- Перейдите к: Инструменты > Параметры > Проекты и решения > Внешние веб-инструменты
- Изменить порядок, чтобы
$(PATH)
был выше $(DevEnvDir)\Extensions\Microsoft\Web Tools\External
Это также относится к другим инструментам, таким как Grunt, Bower и Gulp.
Нашел это решение от Mads Kristensen здесь.
Для Visual Studio 2017 мы можем найти настройку на
Tools > Options > Projects and Solutions > Web Package Management > External Web Tools
Ответ 2
Кажется, gulp -sass searchs node -sass в другом месте. Вот временное решение.
-
создайте новый каталог с именем win32-ia32-11 внутри c:\Projects\Test\ node_modules\gulp -sass\node_modules\node -sass\vendor\
-
Откройте https://github.com/sass/node-sass-binaries и загрузите win32-ia32-11_binding.node.
-
Скопируйте файл win32-ia32-11_binding.node в c:\Projects\Test\ node_modules\gulp -sass\node_modules\node -sass\vendor\win32-ia32-11\и переименуйте его в binding.node
![Visual Studio Gulp - Task Runner]()
Ответ 3
Я пробовал все вышеперечисленные решения, но он не работает, и я нашел другое решение здесь.
Вам нужно заставить Visual Studio работать с вашей версией Node.js:
- Перейдите в
Tools
> Options
в Visual Studio 2015
- Перейдите к
Projects and Solutions
> External Web Tools
- Добавьте следующий путь:
C:\Program Files\nodejs
Ответ 4
Единственное решение, которое решило мою проблему, - это переустановка NPM Task Runner.
Вы можете скачать его по следующей ссылке на рынке.
https://marketplace.visualstudio.com/items?itemName=MadsKristensen.NPMTaskRunner
Ответ 5
node -sass запускает установку script для загрузки требуемого двоичного файла. Если нет переменных окружения, переменных .npmrc или аргументов процесса, тогда двоичный файл определяется с использованием текущей платформы процесса, архитектуры и версии Node ABI. Поэтому, если вы запустите Node install в одном приложении, а затем попробуйте запустить node -sass в приложении с другой платформой/архитектурой/ABI, двоичный файл не будет загружен. Решение состоит в том, чтобы вручную загрузить двоичный файл или исправить двоичную версию с помощью переменной среды (SASS_BINARY_NAME) или переменной .npmrc(sass_binary_name)
Вы можете увидеть логику этого в функции getBinaryPath в node -sass\lib\extensions.js
См. также: Node Sass не удалось найти привязку для вашей текущей среды