npm windows install全局结果为npm ERR!外来

Mer*_*eru 116 windows npm gruntjs

我是新来的咕噜声和npm.所以我在网站' http://tech.pro/tutorial/1190/package-managers-an-introductory-guide-for-the-uninitiated-front-end-developer#front_end_developers ' 上尝试了一些"烹饪书示例" .你不应该现在看那里,但我认为分享网站可能会很好.到目前为止一直很好,直到全球安装.(好吧,我必须弄清楚一些错误,但现在我已经工作了npm).

当谈到尝试在全球范围内安装某些东西时,我会陷入困境.

我到目前为止测试全局安装一些包的方法:

  1. 创建了测试目录 grunttest

  2. 在该目录中:

    npm install -g jshint

输出我可以看到:

 npm http GET https://registry.npmjs.org/jshint
 npm http 304 https://registry.npmjs.org/jshint
 ...
 npm http 304 https://registry.npmjs.org/string_decoder
 C:\Program Files\nodejs\node_modules\npm\jshint -> C:\Program Files\nodejs\node_modules\npm\node_modules\jshinnt
 jshint@2.4.4 C:\Program Files\nodejs\node_modules\npm\node_modules\jshint
 ??? console-browserify@0.1.6
 ??? exit@0.1.2
 ??? underscore@1.4.4
 ??? shelljs@0.1.4
 ??? minimatch@0.2.14 (sigmund@1.0.0, lru-cache@2.5.0)
 ??? cli@0.4.5 (glob@3.2.9)
 ??? htmlparser2@3.3.0 (domelementtype@1.1.1, domutils@1.1.6, domhandler@2.1.0, readable-stream@1.0.26-2)
Run Code Online (Sandbox Code Playgroud)

我刚刚意识到304,应该没问题,因为刚才说上次安装后资源没有被修改(几分钟前).

检查jshint是否存在:

`npm -global list`
Run Code Online (Sandbox Code Playgroud)

输出:

npm@1.4.3 C:\Program Files\nodejs\node_modules\npm
??? abbrev@1.0.4
??? ansi@0.2.1
??...
???
??? graceful-fs@2.0.2
??? inherits@2.0.1
??? ini@1.1.0
??? init-package-json@0.0.14
? ??? promzard@0.2.1
??? jshint@2.4.4 extraneous
? ??? cli@0.4.5
? ? ??? glob@3.2.9
? ?   ??? inherits@2.0.1
? ??? console-browserify@0.1.6
? ??? exit@0.1.2
? ??? htmlparser2@3.3.0
? ? ??? domelementtype@1.1.1
? ? ??? domhandler@2.1.0
? ? ??? domutils@1.1.6
? ? ??? readable-stream@1.0.26-2
? ?   ??... ??? text-table@0.2.0
??? uid-number@0.0.3
??? which@1.0.5

**npm ERR! extraneous: jshint@2.4.4 C:\Program Files\nodejs\node_modules\npm\node_modules\jshint npm**
Run Code Online (Sandbox Code Playgroud)

问题:

  1. 为什么我得到npm ERR!无关的......?
  2. 这是什么意思?
  3. 我该如何解决这个问题?

信息:

我在Windows 7的Windows机器上,使用cygwin作为shell.试图只是jshint(jshint someTestfile.js)当然不起作用.

Meru,提前谢谢

Kyl*_*ung 202

npm ERR! extraneous表示已安装包但未在项目中列出package.json.

由于您列出了全局安装的软件包,因此它会给您带来许多无法忽略的错误,因为大多数全局安装的东西都不在您的项目中package.json.

  • 如果你有本地保存的无关库(不是全局的),你可以运行`npm prune`来摆脱它们. (8认同)
  • @KyleRobinsonYoung:如何在回答中提及这一点.您可以使用`npm prune --your-env`删除所有未使用的包 (2认同)

reb*_*00x 21

1&2:这意味着您没有在项目的package.json文件中列出jshint,但它是全局安装的.所以这不是一个大问题.

3:为避免此无关错误,您可以使用该选项运行或重新运行安装--save.这将自动更新package.json文件:

npm install -g jshint --save
Run Code Online (Sandbox Code Playgroud)

或者需要使用a手动更新package.json文件 "dependencies": {...}

  • `--save` 不能与 `-g` 一起使用。全局包列表没有 package.json。 (2认同)

met*_*mit 5

我通过npm update在父包的文件夹中执行一个操作来解决这个问题,该文件夹从列表中删除了一些无关的包,然后npm uninstall <package>对剩下的几个包进行了操作。

似乎有效,因为这样做后我没有收到任何错误。