npm WARN package.json:没有存储库字段

JR *_*lia 765 node.js npm express

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

sudo npm install -g express
Run Code Online (Sandbox Code Playgroud)

我收到以下警告:

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.
Run Code Online (Sandbox Code Playgroud)

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

gus*_*nke 1213

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

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

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

"repository": {
  "type": "git",
  "url": "git://github.com/username/repository.git"
}
Run Code Online (Sandbox Code Playgroud)

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


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

{
  "name": "my-super-amazing-app",
  "version": "1.0.0",
  "private": true
}
Run Code Online (Sandbox Code Playgroud)

  • 我答案后的几个月,到目前为止我似乎没有任何问题:) (18认同)
  • @Blaise,我没有在NPM 3.3.3中使用`private:true`收到任何警告 (9认同)
  • 问题,为什么不是“私有”默认值,我的意思是创建了多少个 npm 项目而不是实际发布了多少个,库代码真的比用户代码多吗? (4认同)
  • NPM 2.14 现在会在 `repository` 为空且 `private` 设置为 true 时打印错误。 (2认同)

dan*_*_nl 382

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

{
  "name": "my-application",
  "version": "0.0.1",
  "private": true
}
Run Code Online (Sandbox Code Playgroud)


wor*_*art 48

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

{
  ...,
  "repository": {
    "private": true
  }
}
Run Code Online (Sandbox Code Playgroud)

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

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

{
  "name": ...,
  "description": ...,
  "version": ...,
  "private": true
}
Run Code Online (Sandbox Code Playgroud)


Bre*_*Nee 44

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

"repository" : { 
   "type" : "git",
   "url" : "https://github.com/npm/npm.git"
 }
Run Code Online (Sandbox Code Playgroud)


ach*_*kah 8

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


Sha*_*pta 8

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

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

在此输入图像描述

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

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

  "repository" : {     
     "type" : "git",
      "url" : "http://github.com/npm/express.git" 
   }
Run Code Online (Sandbox Code Playgroud)


小智 6

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

"description":"",
"version":"0.0.1",
"private":true,
Run Code Online (Sandbox Code Playgroud)

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


Ale*_*lex 6

为了避免这样的警告:

npm WARN project.com@1.0.0 No repository field.
Run Code Online (Sandbox Code Playgroud)

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

例:

{
  "name": "test.loc",
  "version": "1.0.0",
  "private": true,
  ...
  "license": "ISC"
}
Run Code Online (Sandbox Code Playgroud)

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