提问者:小点点

错误“npm WARN package.json: 无存储库字段”


我使用以下命令安装了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.

为什么会出现上述警告?我该担心吗?


共3个答案

匿名用户

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

但是,不要担心,有太多的包在它们的< code>package.json中仍然没有< code>repository字段。该字段用于提供信息。

如果您是一个包的作者,请将< code>repository放在您的< code>package.json中,如下所示:

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

阅读有关< code>repository字段的更多信息,并查看记录的错误以了解更多详细信息。

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

{
  "name": "my-super-amazing-app",
  "version": "1.0.0",
  "private": true
}

匿名用户

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

{
  "name": "my-application",
  "version": "0.0.1",
  "private": true
}

匿名用户

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

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

更新:这个功能没有文档记录,可能无法工作。选择以下选项。

更好的方法是:直接设置< code>private标志。这样,npm也不会要求自述文件:

{
  "name": ...,
  "description": ...,
  "version": ...,
  "private": true
}