ChatGPT解决这个技术问题 Extra ChatGPT

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.

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

一年后看到这个问题,我意识到我每次安装 npm 包时都会在脑海中抹去所有这些警告。这是包开发人员应该更加小心的事情。
@nha 是的,我通常在执行一些 npm 操作时看到这些警告,如果它在我正在开发的包中,则修复它们。
对于私有仓库,只需将 "private": true 添加到 package.json

K
KyleMit

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

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

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

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

阅读有关 repository 字段的更多信息,并查看 logged bug 了解更多详细信息。

另外,as originally reported by @dan_nl,您可以在您的 package.json 中设置 private 键。
这不仅可以防止您在应用程序中意外运行 npm publish,还可以停止 NPM从打印关于 package.json 问题的警告。

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

在我回答几个月后,到目前为止我似乎没有任何问题:)
NPM 2.14 现在会在 repository 为空且 private 设置为 true 时打印错误。
@Blaise,我在 NPM 3.3.3 中使用 private: true 没有收到任何警告
问题,为什么不是“私有”默认值,我的意思是创建了多少 npm 项目与实际发布了多少,库代码真的比用户代码多吗?
感谢私人:真的,不知何故,这些年来我一直想念这个。
d
dan_nl

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

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

w
wortwart

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

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

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

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

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

收到有关此答案的另一位用户的通知。根据 docs.npmjs.com/files/package.json,看起来 repository.private 没有记录在案的行为(或不再被接受)。
@gustavohenke:谢谢,看来您是对的 - private 因为顶级属性无论如何都是更好的选择。更新了我的答案。
l
laurent

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

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

感谢您澄清使用完整的 github 项目文件链接(包括 http://https://
B
BladeBarringer

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


S
Sibiraj

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

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

https://i.stack.imgur.com/TAQ2U.png

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

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

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

z
zx485

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

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

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


Ł
Łukasz D. Tulikowski

为了避免以下警告:

npm WARN project.com@1.0.0 No repository field.

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

例子:

{
  "name": "test.loc",
  "version": "1.0.0",
  "private": true,
  ...
  "license": "ISC"
}

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


J
Jsalim

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


I
Ian Croasdell

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

npm ls dist-tag

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

请享用 :)


我得到的回应是'--empty
j
jimboweb

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