【问题标题】:npm WARN package.json: No repository fieldnpm WARN package.json:没有存储库字段
【发布时间】:2013-05-25 12:54:44
【问题描述】:

我使用以下命令安装了 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 操作时看到这些警告,如果它在我正在开发的包中,请修复它们。
  • 对于私有仓库,只需在 package.json 中添加 "private": true

标签: node.js express npm


【解决方案1】:

这只是 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 项目与实际发布了多少,库代码真的比用户代码多吗?
  • 感谢私信:真的,不知怎的,这些年我都错过了。
【解决方案2】:

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

【讨论】:

    【解决方案3】:

    为了避免以下警告:

    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

    【讨论】:

      【解决方案4】:

      正如 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 无论如何,顶级属性是更好的选择。更新了我的答案。
      【解决方案5】:

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

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

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

      【讨论】:

        【解决方案6】:

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

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

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

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

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

        【讨论】:

          【解决方案7】:

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

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

          【讨论】:

          • 感谢您澄清使用完整的 github 项目文件链接(包括 http:// 或 https://!
          【解决方案8】:

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

          npm ls dist-tag
          

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

          享受:)

          【讨论】:

          • 我收到的回复是'--empty
          【解决方案9】:

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

          【讨论】:

            【解决方案10】:

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

            【讨论】:

              【解决方案11】:

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

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

              【讨论】:

                猜你喜欢
                • 2016-03-05
                • 2015-06-01
                • 2018-04-04
                • 2018-12-22
                • 2013-02-15
                • 2014-04-06
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多