2017. 3. 6. 15:30

비주얼 스튜디오 2015(Visual Studio 2015)에 앵귤러js2를 받아서 넣긴 했는데.... 종속성 복원이 안 되고 다음과 같이 표시됩니다.

 

npm - 설치되지 않음(not installed)

 

 

 

UI에서 어떤 것이 실패했는지 알 수 없으므로 한땀한땀 찾아보니.....

'fsevents'가 설치되지 않았습니다.

(패키지 명으로 찾으시길 바랍니다.)

 

 

 

이제 오류의 내용을 알았으니 해결방법을 찾기만 하면 됩니다!

 

 

1. 방법1 - 외부 도구 지정하기

이것에 관해서 대표적인 해결방법은 npm을 글로벌 버전으로 연결하라는 것입니다.

(참고 : SCOTT HANSELMAN - Visual Studio 2015 - Fixing "Dependencies npm not installed" from fsevents with node on Windows )

 

글로벌 버전이라는 건 node.js를 설치하면 설치되는 폴더에 있는 npm버전을 사용하라는 것입니다.

(참고 : [Node.js] 윈도우에서 'Node.js'와 'NPM'을 설치하기 )

윈도우에서 디폴트 경로로 설치하면 2가지 경로 중 한군데 설치됩니다.

 

C:\Program Files (x86)\nodejs

or

C:\Program Files\nodejs

 

비주얼 스튜디오에서

도구 > 옵션 > 프로젝트 및 솔루션 > 외부 웹 도구

를 선택한 후  node.js를 설치한 경로를 추가합니다.

그리고 위치를 맨 위로 옮겨 둡니다.

 

 

 

그런데 전 이 방법 써봐도 달라지는 게 없습니다.

뭔가 빠진 거 같은데 여러 곳에서 이렇게만 설명하고 있어서 뭐가 문제인지 모르겠습니다.

 

2. 방법2 - 'package.json'을 수정한다.

결국 다른 방법을 찾다가 보니 여러 곳에서 임시로 해당 내용(저 같은 경우 'fsevents')이 설치되지 못하도록 'package.json'을 수정하라는 것입니다.

(참고 : stack overflow - Dependencies not installed in Visual Studio의 'Nick De Beer'님 답변 )

 

솔루션 탐색기에서 '모든 파일 표시'를 눌러 프로젝트에 포함되지 않은 파일을 표시합니다.

node_modules > chokidar > package.json

파일을 엽니다.

(다른 패키지가 문제라면 그 패키지가 포함된 'package.json'를 찾아야겠죠 ㅎㅎ)

 

 

 

다음 줄을 찾아 지웁니다.

 

"dependencies"에 "fsevents" 줄

"keywords"에 "file" 줄

"keywords"에 "fsevents" 줄

"optionalDependencies" 를 통째로 지웁니다.

 

 

 

이렇게 하고 빌드하시면 일단 종속성 문제는 해결됩니다...

 

 

이제 문제가 해결되었습니다!

 

마무리

 

근데 이거 빌드오류를 내거나 하진 않습니다.

다른 곳에 쓰여 있는 글로는 'fsecents'가 iOS에서만 사용한다고 설명돼있는 곳도 있고 OSX계열에서는 다 사용한다고 나와 있는 곳도 있었습니다.

윈도우에서는 필요 없는 종속성이라고 합니다.

 

이 문제를 해결하려고 이것저것 찾아보니 비주얼 스튜디오에서 npm을 사용할 때 문제가 많다고 하네요-_-;;;

한동안은 고생하게 생겼습니다 ㅎㅎㅎ