关于node.js:npm WARN package.json:没有存储库字段

npm WARN package.json: No repository field

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

1
sudo npm install -g express

我收到以下警告:

1
2
3
4
5
6
7
8
9
10
11
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的检查,他们将此报告为警告。

但是,不用担心,有很多软件包仍然没有package.json中的repository字段。该字段用于提供信息。

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

1
2
3
4
"repository": {
 "type":"git",
 "url":"git://github.com/username/repository.git"
}

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

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

1
2
3
4
5
{
 "name":"my-super-amazing-app",
 "version":"1.0.0",
 "private": true
}


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

1
2
3
4
5
{
 "name":"my-application",
 "version":"0.0.1",
 "private": true
}


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

1
2
3
4
5
6
{
  ...,
 "repository": {
   "private": true
  }
}

更新:此功能未记录,可能无法正常工作。选择以下选项。

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

1
2
3
4
5
6
{
 "name": ...,
 "description": ...,
 "version": ...,
 "private": true
}


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

1
2
3
4
"repository" : {
  "type" :"git",
  "url" :"https://github.com/npm/npm.git"
 }


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

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

enter image description here

让我根据你的场景解释一下

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

1
2
3
4
 "repository" : {    
    "type" :"git",
     "url" :"http://github.com/npm/express.git"
   }

你运行npm init了吗?那个命令可以帮助你完成一切......


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

1
2
3
"description":"",
"version":"0.0.1",
"private":true,

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


为了避免警告,例如:

1
npm WARN [email protected] No repository field.

您必须在项目package.json中定义存储库。
如果您在开发时没有发布到存储库,则可以在package.json中设置"private": true

例:

1
2
3
4
5
6
7
{
 "name":"test.loc",
 "version":"1.0.0",
 "private": true,
  ...
 "license":"ISC"
}

有关此内容的NPM文档:https://docs.npmjs.com/files/package.json


这将有助于你们所有人找到你自己的正确使用细节

1
npm ls dist-tag

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

请享用 :)


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