[visual-studio] Task Runner Explorer에서 작업을로드 할 수 없습니다.

VS2015와 Gulp를 사용하고 있습니다. Task Runner Explorer를 열고 새로 고침을 누르면 로그에 다음과 같이 표시됩니다.

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 관련 작업을 잘 실행할 수 있으므로 VS를 통해 실행되지만 명령 줄에서 직접 실행되지 않을 때 이것이 SASS에 대해 불평하는 이유를 잘 모르겠습니다.



답변

최근 VS2013에서 마이그레이션하는 데 동일한 문제가 발생했습니다.

Josh가 여기 주석 에서 언급했듯이 Visual Studio 2015는 이전 버전의 Node.js와 함께 제공됩니다. Visual Studio에 빌드 된 Node 버전에 얽매이지 않으려면 이미 설치 한 버전을 사용하도록 지시 할 수 있습니다.

  • 이동 : 도구> 옵션> 프로젝트 및 솔루션> 외부 웹 도구
  • $(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


답변

gulp-sass가 다른 위치에서 node-sass를 검색하는 것 같습니다. 다음은 임시 해결책입니다.

  1. c : \ Projects \ Test \ node_modules \ gulp-sass \ node_modules \ node-sass \ vendor \에 win32-ia32-11이라는 새 디렉토리를 만듭니다.

  2. 고토 https://github.com/sass/node-sass-binaries 및 다운로드는 Win32-ia32-11_binding.node.

  3. 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-작업 실행기


답변

위의 모든 솔루션을 시도했지만 작동하지 않고 여기 에서 다른 솔루션을 찾았 습니다 .

Visual Studio를 Node.js 버전으로 강제 실행해야합니다.

  1. Visual Studio 2015에서 Tools> Options로 이동합니다.
  2. 이동 Projects and Solutions>External Web Tools
  3. 다음 경로를 추가하십시오. C:\Program Files\nodejs

답변

내 문제를 해결 한 유일한 해결책은 NPM Task Runner를 다시 설치하는 것입니다. 마켓 플레이스의 다음 링크에서 다운로드 할 수 있습니다.
https://marketplace.visualstudio.com/items?itemName=MadsKristensen.NPMTaskRunner


답변

node-sass는 설치 스크립트를 실행하여 필요한 바이너리를 다운로드합니다. 환경 변수, .npmrc 변수 또는 프로세스 인수가 설정되지 않은 경우 현재 프로세스 플랫폼, 아키텍처 및 노드 ABI 버전을 사용하여 바이너리가 결정됩니다. 따라서 한 애플리케이션에서 노드 설치를 실행 한 다음 다른 플랫폼 / 아키텍처 / ABI가있는 애플리케이션에서 node-sass를 실행하려고하면 바이너리가 다운로드되지 않습니다. 해결책은 수동으로 바이너리를 다운로드하거나 환경 변수 (SASS_BINARY_NAME) 또는 .npmrc 변수 (sass_binary_name)를 사용하여 바이너리 버전을 수정하는 것입니다.

이에 대한 논리는 node-sass \ lib \ extensions.js의 getBinaryPath 함수에서 볼 수 있습니다.

참고 항목 : Node Sass가 현재 환경에 대한 바인딩을 찾을 수 없습니다.


답변