Подтвердить что ты не робот

Посторонний пакет при установке локально

Я пытался установить phantomjs, чтобы make test Twitter 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, он работал нормально, то есть о посторонней ошибке не сообщалось.

Вопросы:

  • Это потому, что phantomjs не указан в файле package.json?
  • Общий вопрос: можем ли мы иметь какой-либо пакет, например. phantomjs устанавливаются глобально, а также локально?
4b9b3361

Ответ 1

  • Да. (Повторная установка с помощью npm install не будет устанавливать снова phantom.js.) (Btw.: npm install xxx --save автоматически добавит xxx в package.json)
  • Да. Локальные версии пакетов предпочтительнее глобальных. (Хотя вам нужна некоторая обработка пути для исполняемых файлов.)

Ответ 2

  • phantomjs должен быть включен в ваш локальный пакет .json(вручную отредактируйте его или используйте команду --save см. ответ TheHippo). Если он установлен где-то и вам не нужен, используйте команду prune

    npm prune

удалит все необязательные пакеты.

  1. Чтобы установить элемент как локально, так и глобально, используйте:

    sudo npm install -g phantomjs