Linux에서 fsevents 모듈로 인해 발생한 npm ls 오류에 대한 솔루션

不言
풀어 주다: 2019-04-04 09:26:16
앞으로
6509명이 탐색했습니다.

이 글은 Linux에서 fsevents 모듈로 인해 발생하는 npm ls 오류에 대한 해결 방법을 제공합니다. 특정 참조 값이 있으므로 도움이 필요한 친구에게 도움이 되길 바랍니다.

Mac에서 개발된 프로젝트가 있습니다. npm i 패키지를 설치하세요. 모든 것이 정상입니다. npm i,一切正常;

把这个项目放到linux机器上,安装包npm i,报了一堆warning:

npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.2.7 (node_modules/chokidar/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.7: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
npm WARN 0403@1.0.0 No description
npm WARN 0403@1.0.0 No repository field.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: abbrev@1.1.1 (node_modules/fsevents/node_modules/abbrev):
npm WARN enoent SKIPPING OPTIONAL DEPENDENCY: ENOENT: no such file or directory, rename '/root/2019/0403/node_modules/fsevents/node_modules/abbrev' -> '/root/2019/0403/node_modules/fsevents/node_modules/.abbrev.DELETE'
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: ansi-regex@2.1.1 (node_modules/fsevents/node_modules/ansi-regex):
npm WARN enoent SKIPPING OPTIONAL DEPENDENCY: ENOENT: no such file or directory, rename '/root/2019/0403/node_modules/fsevents/node_modules/ansi-regex' -> '/root/2019/0403/node_modules/fsevents/node_modules/.ansi-regex.DELETE'
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: aproba@1.2.0 (node_modules/fsevents/node_modules/aproba):
npm WARN enoent SKIPPING OPTIONAL DEPENDENCY: ENOENT: no such file or directory, rename '/root/2019/0403/node_modules/fsevents/node_modules/aproba' -> '/root/2019/0403/node_modules/fsevents/node_modules/.aproba.DELETE'
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: balanced-match@1.0.0 (node_modules/fsevents/node_modules/balanced-match):
npm WARN enoent SKIPPING OPTIONAL DEPENDENCY: ENOENT: no such file or directory, rename '/root/2019/0403/node_modules/fsevents/node_modules/balanced-match' -> '/root/2019/0403/node_modules/fsevents/node_modules/.balanced-match.DELETE'
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: chownr@1.1.1 (node_modules/fsevents/node_modules/chownr):
npm WARN enoent SKIPPING OPTIONAL DEPENDENCY: ENOENT: no such file or directory, rename '/root/2019/0403/node_modules/fsevents/node_modules/chownr' -> '/root/2019/0403/node_modules/fsevents/node_modules/.chownr.DELETE'
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: code-point-at@1.1.0 (node_modules/fsevents/node_modules/code-point-at):
npm WARN enoent SKIPPING OPTIONAL DEPENDENCY: ENOENT: no such file or directory, rename '/root/2019/0403/node_modules/fsevents/node_modules/code-point-at' -> '/root/2019/0403/node_modules/fsevents/node_modules/.code-point-at.DELETE'
...
로그인 후 복사

执行npm ls,有不少UNMET OPTIONAL DEPENDENCY的模块,最后还报了一堆错:

│   ├── define-property@2.0.2 deduped
│   ├── extend-shallow@3.0.2 deduped
│   ├── regex-not@1.0.2 deduped
│   └─┬ safe-regex@1.1.0
│     └── ret@0.1.15
├─┬ UNMET OPTIONAL DEPENDENCY fsevents@1.2.7
│ ├── nan@2.13.2
│ └─┬ UNMET OPTIONAL DEPENDENCY node-pre-gyp@0.10.3
│   ├── UNMET OPTIONAL DEPENDENCY detect-libc@1.0.3
│   ├─┬ UNMET DEPENDENCY mkdirp@0.5.1
│   │ └── UNMET DEPENDENCY minimist@0.0.8
│   ├─┬ UNMET OPTIONAL DEPENDENCY needle@2.2.4
│   │ ├─┬ UNMET OPTIONAL DEPENDENCY debug@2.6.9
│   │ │ └── UNMET OPTIONAL DEPENDENCY ms@2.0.0
│   │ ├─┬ UNMET OPTIONAL DEPENDENCY iconv-lite@0.4.24
│   │ │ └── UNMET OPTIONAL DEPENDENCY safer-buffer@2.1.2
│   │ └── UNMET OPTIONAL DEPENDENCY sax@1.2.4
│   ├─┬ UNMET OPTIONAL DEPENDENCY nopt@4.0.1
│   │ ├── UNMET OPTIONAL DEPENDENCY abbrev@1.1.1
│   │ └─┬ UNMET OPTIONAL DEPENDENCY osenv@0.1.5
│   │   ├── UNMET OPTIONAL DEPENDENCY os-homedir@1.0.2
│   │   └── UNMET OPTIONAL DEPENDENCY os-tmpdir@1.0.2
│   ├─┬ UNMET OPTIONAL DEPENDENCY npm-packlist@1.2.0
│   │ ├─┬ UNMET OPTIONAL DEPENDENCY ignore-walk@3.0.1
│   │ │ └─┬ UNMET DEPENDENCY minimatch@3.0.4
│   │ │   └─┬ UNMET DEPENDENCY brace-expansion@1.1.11
│   │ │     ├── UNMET DEPENDENCY balanced-match@1.0.0
│   │ │     └── UNMET DEPENDENCY concat-map@0.0.1
│   │ └── UNMET OPTIONAL DEPENDENCY npm-bundled@1.0.5
│   ├─┬ UNMET OPTIONAL DEPENDENCY npmlog@4.1.2
│   │ ├─┬ UNMET OPTIONAL DEPENDENCY are-we-there-yet@1.1.5
│   │ │ ├── UNMET OPTIONAL DEPENDENCY delegates@1.0.0
│   │ │ └─┬ UNMET OPTIONAL DEPENDENCY readable-stream@2.3.6
│   │ │   ├── UNMET OPTIONAL DEPENDENCY core-util-is@1.0.2
│   │ │   ├── UNMET DEPENDENCY inherits@2.0.3
│   │ │   ├── UNMET OPTIONAL DEPENDENCY isarray@1.0.0
│   │ │   ├── UNMET OPTIONAL DEPENDENCY process-nextick-args@2.0.0
│   │ │   ├── UNMET DEPENDENCY safe-buffer@5.1.2
│   │ │   ├─┬ UNMET OPTIONAL DEPENDENCY string_decoder@1.1.1
│   │ │   │ └── UNMET DEPENDENCY safe-buffer@5.1.2
│   │ │   └── UNMET OPTIONAL DEPENDENCY util-deprecate@1.0.2
│   │ ├── UNMET DEPENDENCY console-control-strings@1.1.0
│   │ ├─┬ UNMET OPTIONAL DEPENDENCY gauge@2.7.4
│   │ │ ├── UNMET OPTIONAL DEPENDENCY aproba@1.2.0
│   │ │ ├── UNMET DEPENDENCY console-control-strings@1.1.0
│   │ │ ├── UNMET OPTIONAL DEPENDENCY has-unicode@2.0.1
│   │ │ ├── UNMET OPTIONAL DEPENDENCY object-assign@4.1.1
│   │ │ ├── UNMET OPTIONAL DEPENDENCY signal-exit@3.0.2
│   │ │ ├─┬ UNMET DEPENDENCY string-width@1.0.2
│   │ │ │ ├── UNMET DEPENDENCY code-point-at@1.1.0
│   │ │ │ ├─┬ UNMET DEPENDENCY is-fullwidth-code-point@1.0.0
│   │ │ │ │ └── UNMET DEPENDENCY number-is-nan@1.0.1
│   │ │ │ └── UNMET DEPENDENCY strip-ansi@3.0.1
│   │ │ ├─┬ UNMET DEPENDENCY strip-ansi@3.0.1
│   │ │ │ └── UNMET DEPENDENCY ansi-regex@2.1.1
│   │ │ └─┬ UNMET OPTIONAL DEPENDENCY wide-align@1.1.3
│   │ │   └── UNMET DEPENDENCY string-width@1.0.2
│   │ └── UNMET OPTIONAL DEPENDENCY set-blocking@2.0.0
│   ├─┬ UNMET OPTIONAL DEPENDENCY rc@1.2.8
│   │ ├── UNMET OPTIONAL DEPENDENCY deep-extend@0.6.0
│   │ ├── UNMET OPTIONAL DEPENDENCY ini@1.3.5
│   │ ├── UNMET OPTIONAL DEPENDENCY minimist@1.2.0
│   │ └── UNMET OPTIONAL DEPENDENCY strip-json-comments@2.0.1
│   ├─┬ UNMET OPTIONAL DEPENDENCY rimraf@2.6.3
│   │ └─┬ UNMET OPTIONAL DEPENDENCY glob@7.1.3
│   │   ├── UNMET OPTIONAL DEPENDENCY fs.realpath@1.0.0
│   │   ├─┬ UNMET OPTIONAL DEPENDENCY inflight@1.0.6
│   │   │ ├── UNMET DEPENDENCY once@1.4.0
│   │   │ └── UNMET DEPENDENCY wrappy@1.0.2
│   │   ├── UNMET DEPENDENCY inherits@2.0.3
│   │   ├── UNMET DEPENDENCY minimatch@3.0.4
│   │   ├─┬ UNMET DEPENDENCY once@1.4.0
│   │   │ └── UNMET DEPENDENCY wrappy@1.0.2
│   │   └── UNMET OPTIONAL DEPENDENCY path-is-absolute@1.0.1
│   ├── UNMET OPTIONAL DEPENDENCY semver@5.6.0
│   └─┬ UNMET OPTIONAL DEPENDENCY tar@4.4.8
│     ├── UNMET OPTIONAL DEPENDENCY chownr@1.1.1
│     ├─┬ UNMET OPTIONAL DEPENDENCY fs-minipass@1.2.5
│     │ └── UNMET DEPENDENCY minipass@2.3.5
│     ├─┬ UNMET DEPENDENCY minipass@2.3.5
│     │ ├── UNMET DEPENDENCY safe-buffer@5.1.2
│     │ └── UNMET DEPENDENCY yallist@3.0.3
│     ├─┬ UNMET OPTIONAL DEPENDENCY minizlib@1.2.1
│     │ └── UNMET DEPENDENCY minipass@2.3.5
│     ├── UNMET DEPENDENCY mkdirp@0.5.1
│     ├── UNMET DEPENDENCY safe-buffer@5.1.2
│     └── UNMET DEPENDENCY yallist@3.0.3
├─┬ glob-parent@3.1.0
│ ├─┬ is-glob@3.1.0
│ │ └── is-extglob@2.1.1 deduped
│ └── path-dirname@1.0.2
├── inherits@2.0.3
├─┬ is-binary-path@1.0.1
│ └── binary-extensions@1.13.1
├─┬ is-glob@4.0.1
│ └── is-extglob@2.1.1
├── normalize-path@3.0.0
├── path-is-absolute@1.0.1
├─┬ readdirp@2.2.1
│ ├── graceful-fs@4.1.15
│ ├── micromatch@3.1.10 deduped
│ └─┬ readable-stream@2.3.6
│   ├── core-util-is@1.0.2
│   ├── inherits@2.0.3 deduped
│   ├── isarray@1.0.0
│   ├── process-nextick-args@2.0.0
│   ├── safe-buffer@5.1.2
│   ├─┬ string_decoder@1.1.1
│   │ └── safe-buffer@5.1.2 deduped
│   └── util-deprecate@1.0.2
└── upath@1.1.2
로그인 후 복사
npm ERR! missing: mkdirp@0.5.1, required by node-pre-gyp@0.10.3
npm ERR! missing: minimist@0.0.8, required by mkdirp@0.5.1
npm ERR! missing: minimatch@3.0.4, required by ignore-walk@3.0.1
npm ERR! missing: brace-expansion@1.1.11, required by minimatch@3.0.4
npm ERR! missing: balanced-match@1.0.0, required by brace-expansion@1.1.11
npm ERR! missing: concat-map@0.0.1, required by brace-expansion@1.1.11
npm ERR! missing: console-control-strings@1.1.0, required by npmlog@4.1.2
npm ERR! missing: inherits@2.0.3, required by readable-stream@2.3.6
npm ERR! missing: safe-buffer@5.1.2, required by readable-stream@2.3.6
npm ERR! missing: safe-buffer@5.1.2, required by string_decoder@1.1.1
npm ERR! missing: console-control-strings@1.1.0, required by gauge@2.7.4
npm ERR! missing: string-width@1.0.2, required by gauge@2.7.4
npm ERR! missing: strip-ansi@3.0.1, required by gauge@2.7.4
npm ERR! missing: code-point-at@1.1.0, required by string-width@1.0.2
npm ERR! missing: is-fullwidth-code-point@1.0.0, required by string-width@1.0.2
npm ERR! missing: strip-ansi@3.0.1, required by string-width@1.0.2
npm ERR! missing: number-is-nan@1.0.1, required by is-fullwidth-code-point@1.0.0
npm ERR! missing: ansi-regex@2.1.1, required by strip-ansi@3.0.1
npm ERR! missing: string-width@1.0.2, required by wide-align@1.1.3
npm ERR! missing: inherits@2.0.3, required by glob@7.1.3
npm ERR! missing: minimatch@3.0.4, required by glob@7.1.3
npm ERR! missing: once@1.4.0, required by glob@7.1.3
npm ERR! missing: once@1.4.0, required by inflight@1.0.6
npm ERR! missing: wrappy@1.0.2, required by inflight@1.0.6
npm ERR! missing: wrappy@1.0.2, required by once@1.4.0
npm ERR! missing: minipass@2.3.5, required by tar@4.4.8
npm ERR! missing: mkdirp@0.5.1, required by tar@4.4.8
npm ERR! missing: safe-buffer@5.1.2, required by tar@4.4.8
npm ERR! missing: yallist@3.0.3, required by tar@4.4.8
npm ERR! missing: minipass@2.3.5, required by fs-minipass@1.2.5
npm ERR! missing: safe-buffer@5.1.2, required by minipass@2.3.5
npm ERR! missing: yallist@3.0.3, required by minipass@2.3.5
npm ERR! missing: minipass@2.3.5, required by minizlib@1.2.1
로그인 후 복사

仔细观察发现UNMET OPTIONAL DEPENDENCY的模块和npm ERR是同一批模块,也是安装时报warning的那些模块。

再仔细观察发现这些都是fsevents依赖的模块。

fsevents只能在macOS下安装,无法在linux系统安装。linux下会跳过fsevents模块,也不会安装fsevents依赖的模块。

这其实算是npm的一个bug,npm i时报Warnnpm ls又报Err,前后不一致,容易有误解。

目前无论用哪个版本的npm都会有这个问题,npm i --no-optional也不能解决这个问题。

这些报错不影响项目的正常运行,因为linux不需要fsevents

如果不希望看到npm Err,可以用npm i -f强制安装,安装过程没有warn,安装完后npm ls看下:

└─┬ chokidar@2.1.5
└── fsevents@1.2.7
로그인 후 복사

干净了,没有任何报错。

我的项目是chokidar这个模块依赖了fseventschokidar又是browser-syncwebpack이 프로젝트를 Linux 시스템에 놓고 npm i 패키지를 설치하세요. 많은 보고서 경고:

rrreee

npm ls를 실행하세요. UNMET OPTIONAL DEPENDENCY 모듈이 많고, 마지막으로 많은 오류가 보고되었습니다.
rrreeerrreee

주의 깊게 관찰했습니다. UNMET OPTIONAL DEPENDENCY 모듈npm ERR은 동일한 모듈 배치이며, 설치 시 경고를 발생시키는 모듈이기도 합니다.

주의 깊게 살펴보면 이것이 fsevents가 의존하는 모듈이라는 것을 알았습니다.

🎜fsevents는 macOS에서만 설치할 수 있으며 Linux 시스템에는 설치할 수 없습니다. Linux에서는 fsevents 모듈을 건너뛰고 fsevents가 의존하는 모듈은 설치되지 않습니다. 🎜🎜이것은 실제로 npm의 버그입니다. npm iWarn을 보고하고 npm lsErr를 보고합니다. code>.code>는 일관성이 없고 오해를 불러일으키기 쉽습니다. 🎜🎜현재 어떤 버전의 npm을 사용하든 이 문제가 발생합니다. npm i --no-ional은 이 문제를 해결할 수 없습니다. 🎜🎜Linux에는 fsevents가 필요하지 않기 때문에 이러한 오류 보고서는 프로젝트의 정상적인 작동에 영향을 미치지 않습니다. 🎜🎜npm Err를 보고 싶지 않다면 npm i -f를 사용하여 강제 설치하면 됩니다. 설치 후 경고가 표시되지 않습니다. npm ls 살펴보기: 🎜rrreee🎜깨끗하고 오류도 없습니다. 🎜🎜내 프로젝트는 chokidar입니다. 이 모듈은 fsevents에 의존합니다. chokidarbrowser-sync입니다. >webpack 및 기타 종속성. 🎜🎜🎜🎜🎜🎜🎜

위 내용은 Linux에서 fsevents 모듈로 인해 발생한 npm ls 오류에 대한 솔루션의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:segmentfault.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿