2013-04-27 115 views
54

我正试图安装phantomjs以便make testTwitter Bootstrap。在我将它安装在本地,即npm install phantomjs之后,它报告包装是无关的。即报道没有多余的错误本地安装时的无关包装

├─┬ [email protected] extraneous 
│ ├── [email protected] 
... 
npm ERR! extraneous: [email protected] /Users/admin/bootstrap/node_modules/phantomjs 
npm ERR! not ok code 0 

然而,当phantomjs在全球的装机量即npm install phantomjs -g,它工作得很好。

问题:

  1. 是因为phantomjsnot specified in the package.json file
  2. 一般问题:我们可以有任何包裹,例如phantomjs安装在全球和当地?
+1

'外来:未形成的东西的必要组成部分...'是它只是我还是很奇怪你需要*的包是“无关的”? – Shanimal 2014-03-18 15:11:38

回答

74
  1. 是的。 (重新安装与npm install不会再次安装phantom.js。)(顺便说一下。:npm install xxx --save会自动添加XXX到的package.json)
  2. 是。本地软件包版本比全球版本更受欢迎。 (虽然你需要一些路径处理为可执行文件。)
+2

使用-save-dev将其保存为开发人员依赖项 – 2014-06-21 08:56:10

+3

@VincentDeSmet应该是'--save-dev'或'-D'作为简写,您在开始时就错过了一个破折号。 – Val 2015-11-10 11:32:11

+0

为什么本地会优先于全球 – dsdsdsdsd 2016-03-11 13:27:28

7
  1. phantomjs应包括在当地以.json包(手动编辑它,或者使用--save命令看到TheHippo的答案)。如果安装的地方,你不需要它使用修剪命令

    npm prune

将删除所有非必需的程序包。

  • 要本地和全球安装一个项目使用:

    sudo npm install -g phantomjs