npm WARN notsup 건너 뛰기 선택적 종속성 : fsevents@1.0.14에 대해 지원되지 않는 플랫폼


113

내 미니 매치 버전을 3.10.9로 업데이트 한 후이 프로젝트 https://github.com/Soundnode/soundnode-app 을 실행하려고하는데 ,이 오류가 발생했습니다.

npm WARN 선택 사항 건너 뛰기 선택적 종속성 : fsevents@^1.0.0 (node_modules \ webpack \ node_modules \ watchpack \ node_modules \ chokidar \ node_modules \ fsevents) : npm WARN notsup 건너 뛰기 선택 사항 종속성 : fsevents@1.0.14 용 지원되지 않는 플랫폼 : { " os ":"darwin ","arch ":"any "} (현재 : {"os ":"win32 ","arch ":"ia32 "})

내 구성은 Node v-4.4.2 npm v- 3.10.9 im은 32 비트 Windows OS에서 작동합니다.


1
나에게 오류처럼 들리지 않습니까? 이것에도 불구하고 코드를 실행하는 데 문제가 있습니까? npm WARN주의를 기울일만한 가치가 있지만 실제로는 아무것도 깨지 않은 경고입니다.
Aurora0001

2
그리고이 특정 경고는 플랫폼이 요구 사항과 일치하지 않기 때문에 선택적 종속성이 설치되지 않았 음을 나타냅니다. 이 경우에는 darwin을 찾고 있고 당신은 win32
Dave V

"npm install -g grunt-cli"명령을 실행 한 후이 경고가 표시되면 npm install을 실행하려고합니다.
Aishwary Tiwari

1
@AishwaryTiwari, 실제로 오류가 발생 했습니까? 아니면 코드가 작동하지 않습니까? (오류 메시지에서 알 수 있듯이) 선택적 종속성을 건너 뛰었 기 때문에 경고는 실제 문제가되지 않을 것입니다.
Aurora0001

1
문제를 해결하는 풀 요청이 있습니다 : github.com/npm/npm/pull/19198 해당 풀 요청을 구독 할 수 있으므로 종료 될 때 업데이트를받을 수 있습니다.
RiZKiT

답변:


150

오류가 아니라 경고입니다. 이는 fsevents프로젝트가 macOS 환경에서 실행될 때만 사용되는 선택적 종속성 이기 때문에 발생 합니다 (패키지는 'Mac OS-X FSEvents에 대한 기본 액세스'를 제공합니다).

그리고 Windows에서 프로젝트를 실행하고 있기 때문에 fsevents관련성이없는 것으로 건너 뜁니다.

이 동작을 수정하는 PR이 있습니다 : https://github.com/npm/cli/pull/169


35
선택적이고 의존적 인 것 자체가 모순되지 않습니까?
Martijn Burger

7
그것은 이론적 인 질문에 가깝습니다. 어쩌면 conditional dependency더 좋을까요? 이름 지정은 어렵습니다. 간결하게 유지하면서이 사건에 대한 좋은 이름을 찾는 것이 쉽지 않은 것 같습니다.
piotr.d

10
npm install --no-optional
suiwenfeng

5
전적으로 동의합니다, @DemPilafian. 따라서 원래 응답을 편집하고 "only"를 제거했습니다. 나는 개인적으로 경고를 오류처럼 취급하지만,이 경우 IMHO, 이것은 경고로 기록되는 것이 아니라 오히려 정보로 기록되어야합니다. Windows 환경에서는 경고를 없애기 위해 아무것도 할 수 없기 때문입니다.
piotr.d

23
좋은 대답입니다. 이제 어떻게 제거합니까?
TetraDev

32

이는 여전히 문제인 것으로 보이며 "지원되지 않는 플랫폼"으로 인해 선택 패키지가 설치되지 않는다는 경고와 함께 패키지 설치가 중단됩니다.

문제는 "shrinkwrap"또는 package-lock.json모든 패키지 관리자 실행 후 지속되는 것과 관련이 있습니다 . 이 파일이 대신 참조되므로 후속 시도는 계속 실패합니다 package.json.

이 옵션을 npm install명령에 추가 하면 패키지를 다시 설치할 수 있습니다.

   --no-optional argument will prevent optional dependencies from being installed.

   --no-shrinkwrap argument, which will ignore an available package lock or
                   shrinkwrap file and use the package.json instead.

   --no-package-lock argument will prevent npm from creating a package-lock.json file.

완전한 명령은 다음과 같습니다.

    npm install --no-optional --no-shrinkwrap --no-package-lock

nJoy!


1
--no-optional경고를 제거하기 위해 작동하는 코드에 대해 -flag 를 설정하는 것이 위험 합니까? 기본적으로 설정되지 않은 이유는 무엇입니까?
cederlof

5
package-lock.json을 사용하는 것이 좋은 것이고이 솔루션은 그 반대를 제안하기 때문에 이것은 해결책이 될 수 없습니다.
ismailarilik 19.01.18

@ismailarilik이 솔루션을 사용하면 작업을 계속할 수 있도록 패키지를 설치할 수 있습니다.
nickl-

"-선택 사항 없음"은 정말, 정말 나쁜 생각입니다. 일반적으로 경고를 무시해도됩니다. 다음을 사용할 수도 있습니다 npm install -f. github.com/angular/angular/issues/13935
FoggyDay

12

매개 변수 --force 사용 :

npm i -f

2
이 명령으로 한 번 강제로 설치를했는데 이제 시작할 때 npm install경고가 표시되지 않습니다.
Allenile 19.

1
해당 명령을 실행하는 동안 오류가 발생했지만 npm 설치를 다시 실행하면 경고가 사라졌습니다! 선생님 감사합니다
ccoutinho

그래서 당신은 경고를 얻기 위해 쓸모없는 의존성을 (Windows 머신에) 프로젝트에 설치하고 있습니까? 그렇다면 생산 건물에서 나무를 흔들어 없애기를 바랍니다. 해결 방법이 마음에 듭니다. 내 화면에서 사과 관련 항목을 제거합니다.
Josep Alacid
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.