npm的“Skipping failed optional dependency”是什么意思?

30

最新的node和npm版本导致运行karma出现问题。当我尝试安装karma-cli npm i -g karma karma-cli时,会得到以下警告:

npm WARN optional Skipping failed optional dependency /chokidar/fsevents:
npm WARN notsup Not compatible with your operating system or architecture: fsevents@1.0.8
npm WARN optional Skipping failed optional dependency /gulp-karma/chokidar/fsevents:
npm WARN notsup Not compatible with your operating system or architecture: fsevents@0.2.1

当我尝试运行karma test时,出现以下错误:

"C:\Program Files\nodejs\node.exe" "C:\Program Files (x86)\JetBrains\WebStorm 11.0.3\plugins\js-karma\js_reporter\karma-intellij\lib\intellijServer.js" --karmaPackageDir=C:\Users\xxx\AppData\Roaming\npm\node_modules\karma --configFile=C:\Users\xxx\Documents\project\karma.conf.js
26 02 2016 11:24:07.871:WARN [plugin]: Cannot find plugin "karma-chrome-launcher".
  Did you forget to install it ?
  npm install karma-chrome-launcher --save-dev
26 02 2016 11:24:07.877:WARN [plugin]: Cannot find plugin "karma-firefox-launcher".
  Did you forget to install it ?
  npm install karma-firefox-launcher --save-dev
26 02 2016 11:24:07.878:WARN [plugin]: Cannot find plugin "karma-phantomjs-launcher".
  Did you forget to install it ?
  npm install karma-phantomjs-launcher --save-dev
26 02 2016 11:24:07.879:WARN [plugin]: Cannot find plugin "karma-jasmine".
  Did you forget to install it ?
  npm install karma-jasmine --save-dev
26 02 2016 11:24:07.880:WARN [plugin]: Cannot find plugin "karma-junit-reporter".
  Did you forget to install it ?
  npm install karma-junit-reporter --save-dev
26 02 2016 11:24:07.885:WARN [plugin]: Cannot find plugin "karma-teamcity-reporter".
  Did you forget to install it ?
  npm install karma-teamcity-reporter --save-dev
26 02 2016 11:24:07.887:WARN [plugin]: Cannot find plugin "karma-coverage".
  Did you forget to install it ?
  npm install karma-coverage --save-dev
26 02 2016 11:24:07.888:WARN [plugin]: Cannot find plugin "karma-jasmine-html-reporter".
  Did you forget to install it ?
  npm install karma-jasmine-html-reporter --save-dev
26 02 2016 11:24:07.889:WARN [plugin]: Cannot find plugin "karma-ng-html2js-preprocessor".
  Did you forget to install it ?
  npm install karma-ng-html2js-preprocessor --save-dev
26 02 2016 11:24:07.890:WARN [plugin]: Cannot find plugin "karma-browserify".
  Did you forget to install it ?
  npm install karma-browserify --save-dev
26 02 2016 11:24:07.893:WARN [preprocess]: Can not load "coverage", it is not registered!
  Perhaps you are missing some plugin?
26 02 2016 11:24:07.893:WARN [preprocess]: Can not load "ng-html2js", it is not registered!
  Perhaps you are missing some plugin?
26 02 2016 11:24:07.893:WARN [preprocess]: Can not load "browserify", it is not registered!
  Perhaps you are missing some plugin?
26 02 2016 11:24:07.901:WARN [reporter]: Can not load "coverage", it is not registered!
  Perhaps you are missing some plugin?
26 02 2016 11:24:07.901:WARN [reporter]: Can not load "junit", it is not registered!
  Perhaps you are missing some plugin?
C:\Users\xxx\AppData\Roaming\npm\node_modules\karma\node_modules\di\lib\injector.js:9
      throw error('No provider for "' + name + '"!');
      ^

Error: No provider for "framework:jasmine"! (Resolving: framework:jasmine)
    at error (C:\Users\xxx\AppData\Roaming\npm\node_modules\karma\node_modules\di\lib\injector.js:22:12)
    at Object.parent.get (C:\Users\xxx\AppData\Roaming\npm\node_modules\karma\node_modules\di\lib\injector.js:9:13)
    at get (C:\Users\xxx\AppData\Roaming\npm\node_modules\karma\node_modules\di\lib\injector.js:54:19)
    at C:\Users\xxx\AppData\Roaming\npm\node_modules\karma\lib\server.js:138:20
    at Array.forEach (native)
    at Server._start (C:\Users\xxx\AppData\Roaming\npm\node_modules\karma\lib\server.js:137:21)
    at invoke (C:\Users\xxx\AppData\Roaming\npm\node_modules\karma\node_modules\di\lib\injector.js:75:15)
    at Server.start (C:\Users\xxx\AppData\Roaming\npm\node_modules\karma\lib\server.js:102:18)
    at Object.<anonymous> (C:\Program Files (x86)\JetBrains\WebStorm 11.0.3\plugins\js-karma\js_reporter\karma-intellij\lib\intellijServer.js:12:13)
    at Module._compile (module.js:410:26)
    at Object.Module._extensions..js (module.js:417:10)
    at Module.load (module.js:344:32)
    at Function.Module._load (module.js:301:12)
    at Function.Module.runMain (module.js:442:10)
    at startup (node.js:136:18)
    at node.js:966:3

Process finished with exit code 1

我的配置规格如下:

Node版本: v4.3.0
NPM版本: 3.7.3

我无法安装karma版本,我认为它没有在我的电脑上正确安装。

1个回答

48

这并不是一个错误。它是一个警告,Mac OS专用的fseventsd不能安装在Linux上。

不必担心,需要fsevents的软件包仍然可以正常工作-这就是为什么它是可选依赖关系。

由于许多人对此感到困惑(特别是因为这曾经是一个真正的错误,而不是一个警告),因此有一个未解决的错误,将当前警告变成INFO

此外,yarn已经做到了这一点。


2
感谢您的帮助。通过将我的nodejs升级到最新版本,它帮助我解决了这个问题。目前我没有收到任何错误。但是,当我运行karma测试时,我会收到如问题中所述的以下错误。但是,当我检查node_modules时,我发现karma-chrome-launcher已安装,如果我进入其中,该特定页面的node_modules尚未创建。因此,许多软件包都有相同类型的问题。因此,我正在手动安装其依赖项。如果这与npm问题或其karma作者问题有关,则是否有克服的方法? - Mithun Shreevatsa
npm ls karma-chrome-launcher 会给你什么信息? - mikemaccana
@mikemaccana,你说这是MAC OSX特定的。当我在vagrant中执行npm install时,我收到了警告(确实没有错误),但仍然无法安装elixir,因此我无法使用sass。当我在vagrant之外运行npm install时,它会正常运行,但仍然没有安装elixir...结论是我无法使用gulp(可能是因为thie sfevents)。有什么帮助吗? - nclsvh
@NicolasV 这个警告会在你安装一个不适用于该操作系统的软件包时出现,例如在Linux上安装Windows软件包,在Mac OS上安装Linux专用软件包等。听起来你在安装独立的Elixir时有问题 - 最好提出一个不同的问题来询问。 - mikemaccana
5
有没有什么办法能够在不改变原意的情况下,让这个东西消失或者减轻它的影响?因为它时不时地出现,真的很让我困扰。 - Konrad Viltersten
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接