npm WARN package.json: нет поля репозитория

810

Я установил Express.js с помощью следующей команды:

sudo npm install -g express

Я получаю следующие предупреждения:

npm WARN package.json range-parser@0.0.4 No repository field.
npm WARN package.json fresh@0.1.0 No repository field.
npm WARN package.json methods@0.0.1 No repository field.
npm WARN package.json methods@0.0.1 No readme data.
npm WARN package.json cookie-signature@1.0.1 No repository field.
npm WARN package.json send@0.1.0 No repository field.
npm WARN package.json pause@0.0.1 No repository field.
npm WARN package.json bytes@0.2.0 No repository field.
npm WARN package.json github-url-from-git@1.1.1 No repository field.
npm WARN package.json assert-plus@0.1.2 No repository field.
npm WARN package.json ctype@0.5.2 No repository field.

Я новичок в Node.js и Express.js. Почему у меня есть вышеупомянутые предупреждения? Я должен беспокоиться?

JR Galia
источник
19
Увидев этот вопрос через год, я понял, что мысленно стираю все эти предупреждения каждый раз, когда устанавливаю пакеты npm. Это то, что разработчики пакетов должны быть немного осторожнее.
ня,
@ nha Да, я обычно вижу эти предупреждения при выполнении какой-либо операции npm и исправляю их, если они находятся в пакете, который я разрабатываю.
густавохенке
29
для частных репозиториев просто добавьте "private": trueв package.json
chovy

Ответы:

1281

Это просто проверка, начиная с NPM v1.2.20, они сообщают об этом как предупреждение.

Тем не менее, не беспокойтесь, есть так много пакетов, в которых все еще нет repositoryполя package.json. Поле используется в ознакомительных целях.

В случае, если вы являетесь автором пакета, repositoryвведите свой package.json, например, так:

"repository": {
  "type": "git",
  "url": "git://github.com/username/repository.git"
}

Узнайте больше о repositoryполе и посмотрите зарегистрированную ошибку для получения дополнительной информации.


Кроме того, как первоначально сообщал @dan_nl , вы можете установить privateключ в своем package.json.
Это не только предотвратит случайный запуск npm publishвашего приложения, но и не позволит NPM печатать предупреждения о package.jsonпроблемах.

{
  "name": "my-super-amazing-app",
  "version": "1.0.0",
  "private": true
}
gustavohenke
источник
20
Спустя несколько месяцев после моего ответа и у меня пока не возникло никаких проблем :)
gustavohenke
2
NPM 2.14 теперь выводит сообщение об ошибке, когда repositoryон пуст и privateимеет значение true.
Блейз
9
@ Blaise, я не получаю никаких предупреждений в NPM 3.3.3 с помощьюprivate: true
gustavohenke
3
Вопрос, почему «private» не используется по умолчанию, я имею в виду, сколько npm-проектов создано и сколько фактически опубликовано, действительно ли библиотечный код больше, чем пользовательский код?
Фелипе
1
Спасибо за личное: правда, как-то, я скучал по этому все эти годы.
Джереми Чон
394

вы также можете пометить приложение как частное, если вы не планируете помещать его в реальный репозиторий.

{
  "name": "my-application",
  "version": "0.0.1",
  "private": true
}
dan_nl
источник
51

Как указано в dan_nl, вы можете добавить частный поддельный репозиторий в package.json. Вам даже не нужно имя и версия для этого:

{
  ...,
  "repository": {
    "private": true
  }
}

Обновление: эта функция недокументирована и может не работать. Выберите следующий вариант.

Еще лучше: установите privateфлаг напрямую. Таким образом, npm также не запрашивает файл README:

{
  "name": ...,
  "description": ...,
  "version": ...,
  "private": true
}
wortwart
источник
Получил уведомление о другом ответе другого пользователя. Похоже, repository.privateэто не документированное поведение (или оно больше не принимается), согласно docs.npmjs.com/files/package.json .
Густавохенке
1
@gustavohenke: Спасибо, кажется, вы правы, так privateкак в любом случае лучше использовать свойство верхнего уровня. Обновил мой ответ.
wortwart
46

Если вы получаете это от своего package.json, просто добавьте repositoryполе к нему. (используйте ссылку на ваш реальный репозиторий):

"repository" : { 
   "type" : "git",
   "url" : "https://github.com/npm/npm.git"
 }
Брендан Ни
источник
Спасибо за разъяснения по использованию полной ссылки на файл проекта github (включая http://или https://!
twknab
9

Ты бегал npm init? Эта команда проводит вас через все ...

achoukah
источник
9

В Simple word- package.json вашего проекта нет свойства репозитория, вы должны добавить его,

и вы должны добавить репозиторий в ваш package.json, как показано ниже

введите описание изображения здесь

и позвольте мне объяснить по вашему сценарию

Вы должны добавить поле репозитория, как показано ниже

  "repository" : {     
     "type" : "git",
      "url" : "http://github.com/npm/express.git" 
   }
Шашват Гупта
источник
7

Чтобы избежать таких предупреждений, как:

npm WARN project.com@1.0.0 No repository field.

Вы должны определить хранилище в вашем проекте package.json. В случае, когда вы разрабатываете без публикации в хранилище, вы можете установить "private": trueв package.json

Пример:

{
  "name": "test.loc",
  "version": "1.0.0",
  "private": true,
  ...
  "license": "ISC"
}

Документация NPM об этом: https://docs.npmjs.com/files/package.json

Alex
источник
6

Если вы не хотите указывать хранилище, вы можете добавить следующие строки в package.json файл :

"description":"",
"version":"0.0.1",
"private":true,

Это сработало для меня.
Добавляя private, вам не нужно ссылаться на репо.

Рубин Бхандари
источник
4

это поможет вам найти правильные детали

npm ls dist-tag

это покажет правильную информацию, так что вы не угадаете местоположение файла версии и т. д.

наслаждаться :)

Ян Кроасделл
источник
1
Я получил ответ как '--empty
MJ
3

Да, возможно, вы можете создать его заново, добавив -fв конце команды

Jsalim
источник
1

используйте npm install -g angular-cli вместо
npm install -g @ nagular / cli для установки Angular

Алнебрас Муртада
источник