本地安装时的无关包装

我正在尝试安装phantomjs ,以便make test Twitter Bootstrap 。 在我本地安装了它之后,即npm install phantomjs ,它报告这个软件包是无关的。

 ├─┬ phantomjs@1.9.0-3 extraneous │ ├── adm-zip@0.2.1 ... npm ERR! extraneous: phantomjs@1.9.0-3 /Users/admin/bootstrap/node_modules/phantomjs npm ERR! not ok code 0 

然而,当phantomjs全球安装,即npm install phantomjs -g ,它工作正常,即没有多余的错误报告。

问题:

  1. 是否因为package.json文件中没有指定 phantomjs
  2. 一般问题:我们是否可以在全球范围内安装任何软件包,例如phantomjs
  1. 是。 (用npm install重新npm install不会再安装phantom.js。)(顺便说一下: npm install xxx --save会自动将xxx添加到package.json中)
  2. 是。 本地软件包版本优于全球版本。 (虽然您需要一些可执行文件的path处理。)
  1. phantomjs应该包含在你的本地.json软件包中(手动编辑或使用–save命令参见TheHippo的答案)。 如果它安装在某个地方而你不需要它,可以使用prune命令

    npm prune

将删除所有不需要的软件包。

  1. 要在本地和全球范围内安装项目,请使用:

    sudo npm install -g phantomjs