重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章将为大家详细讲解有关如何解决linux下fsevents模块引起的npm ls报错的问题,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
创新互联坚信:善待客户,将会成为终身客户。我们能坚持多年,是因为我们一直可值得信赖。我们从不忽悠初访客户,我们用心做好本职工作,不忘初心,方得始终。十载网站建设经验创新互联是成都老牌网站营销服务商,为您提供做网站、网站建设、网站设计、成都h5网站建设、网站制作、高端网站设计、重庆小程序开发公司服务,给众多知名企业提供过好品质的建站服务。有个项目在mac下开发,安装包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
时报Warn
,npm 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
这个模块依赖了fsevents
,chokidar
又是browser-sync
、webpack
等依赖的。
关于如何解决linux下fsevents模块引起的npm ls报错的问题就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。