893

我使用以下命令安装了 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 的新手。为什么我有上述警告?我应该担心吗?

4

11 回答 11

1381

这只是从 NPM v1.2.20 开始的检查,他们将此报告为警告。

但是,不用担心,有太多的软件包repository在他们的package.json. 该字段用于提供信息。

如果您是包作者,请将 放入repository您的 中package.json,如下所示:

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

阅读有关该repository字段的更多信息,并查看记录的错误以获取更多详细信息。


此外, 正如 @dan_nl 最初报道的那样,您可以privatepackage.json.
这不仅会阻止您npm publish在应用程序中意外运行,还会阻止 NPM 打印有关package.json问题的警告。

{
  "name": "my-super-amazing-app",
  "version": "1.0.0",
  "private": true
}
于 2013-05-30T04:33:30.330 回答
406

如果您不打算将应用程序放入实际存储库中,也可以将应用程序标记为私有。

{
  "name": "my-application",
  "version": "0.0.1",
  "private": true
}
于 2014-04-29T03:38:58.773 回答
55

正如 dan_nl 所说,您可以在 package.json 中添加一个私有的假存储库。您甚至不需要它的名称和版本:

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

更新:此功能未记录在案,可能无法使用。选择以下选项。

更好的是:private直接设置标志。这样 npm 也不会要求 README 文件:

{
  "name": ...,
  "description": ...,
  "version": ...,
  "private": true
}
于 2014-09-15T21:11:56.250 回答
48

如果您是从自己的 中获取的package.json,只需将repository字段添加到其中即可。(使用指向您实际存储库的链接):

"repository" : { 
   "type" : "git",
   "url" : "https://github.com/npm/npm.git"
 }
于 2014-02-28T04:03:42.780 回答
9

你跑了npm init吗?该命令将引导您完成所有操作...

于 2015-08-08T19:32:12.293 回答
8

在您项目的简单 word -package.json 中没有存储库的属性,您必须添加它,

并且您必须在 package.json 中添加存储库,如下所示

在此处输入图像描述

让我根据你的情况解释一下

您必须添加存储库字段,如下所示

  "repository" : {     
     "type" : "git",
      "url" : "http://github.com/npm/express.git" 
   }
于 2017-04-16T20:47:15.963 回答
7

如果您不想指定存储库,可以将以下行添加到package.json文件中:

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

这对我有用。
通过添加private,您无需链接到存储库。

于 2018-05-23T11:37:56.583 回答
6

为了避免以下警告:

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

于 2018-09-23T19:00:22.650 回答
3

这将帮助大家找到自己的正确使用细节

npm ls dist-tag

然后这将显示正确的信息,因此您不会猜测版本文件位置等

请享用 :)

于 2016-11-26T10:55:10.373 回答
3

-f是的,也许您可​​以通过在命令末尾包含来重新/创建一个

于 2016-04-27T05:12:20.907 回答
-1

使用 npm install -g angular-cli 而不是
npm install -g@nagular/cli 来安装 Angular

于 2019-09-06T18:38:36.557 回答