npm WARN install отказывается устанавливать hapi в качестве собственной зависимости

Я попытался сделать следующее (согласно инструкциям из официальный сайт):

  • mkdir hapi && cd hapi
  • npm init
  • npm install hapi --save

но это дает мне такую ошибку:

npm WARN install отказывается устанавливать hapi как зависимость от себя

теперь я сделал новую тестовую папку под названием hapiTest и повторил команды, а затем все сработало нормально.

я попробовал тот же процесс с папкой gulp и npm install gulp --save, и получил ту же ошибку, поэтому мой вывод заключается в том, что я не могу иметь имя папки таким же, как пакет, который я хочу установить, но может ли кто-то поддержать это заявление с какой-то официальной документацией?

5 ответов


когда вы сделали команду npm init, вероятно, были некоторые соответствующие вопросы, на которые вам нужно было ответить. В частности, название вашего модуля. Когда вы используете npm init, предполагается, что вы хотите, чтобы имя создаваемого модуля называлось именем папки, в которой он находится.

так это не имя папку это останавливает вас от установки зависимости, это имя модуль npm что вы творящий.

открыт package.json в своем hapi каталог, и переименовать модуль на что-то другое, чем hapi. Вот пример ' пакета.json ' это работает, даже если он находится в папке Хапи:

{
  "name": "hapi-test",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "hapi": "^7.5.2"
  }
}

Примечание

до сих пор я не смог найти никакой документации, объясняющей эти явления в контексте npm; хотя это немного нетрудно. Требуются модули с одинаковым именем в том же приложении будет конфликтовать с CommonJS философия.


имя вашего модуля совпадает с именем модуля, который вы пытаетесь установить. NPM думает, что вы устанавливаете модуль к себе. Измените имя вашего модуля, и он будет установлен идеально.


причина Имя модуля совпадает с именем библиотеки

решение

  1. изменить название модуля на что-то другое
  2. изменить " имя " в пакете.в JSON

вопрос можно просто объяснить следующим образом название вашего пакета или модуля в package.json не может быть таким же, как у пакета или модуля, который вы пытаетесь установить.

здесь hapi - имя модуля и вы пытаетесь установить модуль с именем hapi С npm install hapi --save


Это был мой первоначальный код

{
  "name": "react",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "react": "^15.6.1"
  }
}

который бросил ошибка

npm WARN package.json react@1.0.0 No description
npm WARN package.json react@1.0.0 No repository field.
npm WARN package.json react@1.0.0 No README data
npm WARN install Refusing to install react as a dependency of itself

затем я переименовал имя из react в react_app, и мой код выглядит как

{
  "name": "react_app",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "react": "^15.6.1"
  }
}

затем он работал