none
visual studio 2017에서 node.js npm 패키지 오류 RRS feed

  • 질문

  • 안녕하세요

    Visual studio 2017 enterprise에서 node.js 언어를 통해 개발하고 있는데 문제가 발생하여 문의드립니다.

    : vs 버전: Visual Studio Enterprise 2017 (version 15.2, Release date 5/10/2017)

    : node.js 버전: v6.11.1

    : npm 버전: 5.3.0

    새 npm 패키지를 설치하려고 했는데, npm 리스트 업데이트도 안되고, 검색도 안됩니다.

    (설치 시도)

    에러 스샷은 아래와 같습니다.

    레지스트리 URL: https://registry.npmjs.org/
    Npm 경로: C:\Program Files\nodejs\npm.cmd
    패키지 캐시를 C:\Users\VIRNECT\AppData\Local\Microsoft\Node.js Tools\NpmCache\3ce70656-bc31-4dec-aeef-9db2a623368d\all_packages.json(으)로 다운로드하는 중
    https://registry.npmjs.org/-/all에서 패키지 목록을 다운로드하는 중
    다운로드 완료 - 데이터베이스를 업데이트하는 중
    C:\Users\VIRNECT\AppData\Local\Microsoft\Node.js Tools\NpmCache\3ce70656-bc31-4dec-aeef-9db2a623368d\all_packages.json에서 24바이트를 읽는 중(2017-07-26 오전 10:37:00)
    Newtonsoft.Json.JsonException: Unexpected JSON token reading a package from the NPM catalog data
       위치: Microsoft.NodejsTools.Npm.SPI.NpmGetCatalogCommand.ReadPackagesFromObject(SQLiteConnection db, JsonTextReader jsonReader, String registryUrl)
       위치: Microsoft.NodejsTools.Npm.SPI.NpmGetCatalogCommand.<>c__DisplayClass6_0.<ParseResultsAndAddToDatabase>b__0()
       위치: SQLite.SQLiteConnection.RunInTransaction(Action action)
       위치: Microsoft.NodejsTools.Npm.SPI.NpmGetCatalogCommand.ParseResultsAndAddToDatabase(TextReader reader, String dbFilename, String registryUrl)
       위치: Microsoft.NodejsTools.Npm.SPI.NpmGetCatalogCommand.<>c__DisplayClass23_2.<ExecuteAsync>b__2()
       위치: System.Threading.Tasks.Task.InnerInvoke()
       위치: System.Threading.Tasks.Task.Execute()
    --- 예외가 throw된 이전 위치의 스택 추적 끝 ---
       위치: System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
       위치: System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
       위치: System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task)
       위치: Microsoft.NodejsTools.Npm.SPI.NpmGetCatalogCommand.<ExecuteAsync>d__23.MoveNext()
    다운로드 또는 구문 분석 실패 - C:\Users\VIRNECT\AppData\Local\Microsoft\Node.js Tools\NpmCache을(를) 삭제합니다. 카탈로그를 다시 새로 고쳐 보세요. 또는 Visual Studio를 다시 시작하고 다시 시도하세요.
    3ce70656-bc31-4dec-aeef-9db2a623368d 삭제 중
    Newtonsoft.Json.JsonException: Unexpected JSON token reading a package from the NPM catalog data
       위치: Microsoft.NodejsTools.Npm.SPI.NpmGetCatalogCommand.ReadPackagesFromObject(SQLiteConnection db, JsonTextReader jsonReader, String registryUrl)
       위치: Microsoft.NodejsTools.Npm.SPI.NpmGetCatalogCommand.<>c__DisplayClass6_0.<ParseResultsAndAddToDatabase>b__0()
       위치: SQLite.SQLiteConnection.RunInTransaction(Action action)
       위치: Microsoft.NodejsTools.Npm.SPI.NpmGetCatalogCommand.ParseResultsAndAddToDatabase(TextReader reader, String dbFilename, String registryUrl)
       위치: Microsoft.NodejsTools.Npm.SPI.NpmGetCatalogCommand.<>c__DisplayClass23_2.<ExecuteAsync>b__2()
       위치: System.Threading.Tasks.Task.InnerInvoke()
       위치: System.Threading.Tasks.Task.Execute()
    --- 예외가 throw된 이전 위치의 스택 추적 끝 ---
       위치: System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
       위치: System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
       위치: System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task)
       위치: Microsoft.NodejsTools.Npm.SPI.NpmGetCatalogCommand.<ExecuteAsync>d__23.MoveNext()
    --- 예외가 throw된 이전 위치의 스택 추적 끝 ---
       위치: System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
       위치: System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
       위치: Microsoft.NodejsTools.Npm.SPI.NpmCommander.NmpCommandRunner.<ExecuteAsync>d__2.MoveNext()
    --- 예외가 throw된 이전 위치의 스택 추적 끝 ---
       위치: System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
       위치: System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
       위치: Microsoft.NodejsTools.Npm.SPI.NpmCommander.<DoCommandExecute>d__12.MoveNext()

    캐시를 삭제하거나,

    node.js나 npm도 다시 설치해보고,

    node.js 개발도구도 다시 설치해보고,

    visual studio도 재설치해봤지만, 똑같이 동작안합니다.

    혹시 vs내 node파일이 문제인가 싶어서, node.js설치된 디렉토리의 node.js(+modules 폴더) 파일들을

    vs설치 폴더 내로 복사해봐도 똑같더군요.
    (C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Web\External\node_modules)

    다행히 콘솔 창에서 커맨드를 이용한 설치는 되서, 임시로 설치하고 있지만 빨리 해결됐으면 합니다.

    해결 방법이 없을까요?



    • 편집됨 VIRNECT 2017년 7월 26일 수요일 오전 1:49
    2017년 7월 26일 수요일 오전 1:46

답변

  • 저 현상이 저 컴퓨터에만 발생하는게 아니라, 비쥬얼스튜디오 2015 이상에서는 동일하게 발생하더군요

    구글링을 해봐도 몇달전에 동일한 현상이 있었던 사람들이 있긴 있는데,

    해결법이 딱히 보이지는 않는듯 합니다.

    • 답변으로 표시됨 VIRNECT 2017년 12월 4일 월요일 오전 5:03
    2017년 7월 31일 월요일 오전 2:53

모든 응답

  • 답을 드리는건 아니지만,

    이상하네요. 일단 콘솔 창에서 커맨드로 된다고 하시니 다행이긴 한데요.

    NPM 패키지 설치 창에서 인터페이스를 이용해서 설치를 눌러도 내부적으로는 콘솔 창 커맨드를 실행하는 것일텐데..

    암튼 이상하긴 하네요. 빨리 해결되기 바래봅니다.

    2017년 7월 26일 수요일 오전 8:56
  • 저 현상이 저 컴퓨터에만 발생하는게 아니라, 비쥬얼스튜디오 2015 이상에서는 동일하게 발생하더군요

    구글링을 해봐도 몇달전에 동일한 현상이 있었던 사람들이 있긴 있는데,

    해결법이 딱히 보이지는 않는듯 합니다.

    • 답변으로 표시됨 VIRNECT 2017년 12월 4일 월요일 오전 5:03
    2017년 7월 31일 월요일 오전 2:53