协慌网

登录 贡献 社区

npm WARN package.json:无存储库字段

我使用以下命令安装了 Express.js:

sudo npm install -g express

我收到以下警告:

npm WARN package.json [email protected] No repository field.
npm WARN package.json [email protected] No repository field.
npm WARN package.json [email protected] No repository field.
npm WARN package.json [email protected] No readme data.
npm WARN package.json [email protected] No repository field.
npm WARN package.json [email protected] No repository field.
npm WARN package.json [email protected] No repository field.
npm WARN package.json [email protected] No repository field.
npm WARN package.json [email protected] No repository field.
npm WARN package.json [email protected] No repository field.
npm WARN package.json [email protected] No repository field.

我是 Node.js 和 Express.js 的新手。为什么会有以上警告?我应该担心吗?

答案

自 NPM v1.2.20 起,这只是检查,他们将其报告为警告。

不过,不用担心,有仍然没有sooooooo许多包repository在自己的领域package.json 。该字段用于提供信息。

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

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

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


此外, 正如 @dan_nl 最初报告的那样 ,您可以在package.json设置private
这不仅可以阻止您意外运行应用程序中的npm publish ,而且还可以阻止 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
  }
}

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

更妙的是:直接设置private标志。这样,npm 也不要求自述文件:

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