【问题标题】:npm WARN install Refusing to install hapi as a dependency of itselfnpm WARN install 拒绝安装 hapi 作为自身的依赖
【发布时间】:2015-01-31 18:41:54
【问题描述】:

我尝试执行以下操作(根据 official site 的说明):

  • mkdir hapi && cd hapi
  • npm init
  • npm install hapi --save

但这给了我这样的错误:

npm WARN install 拒绝安装 hapi 作为自身的依赖

现在,我创建了一个名为 hapiTest 的新测试文件夹并重复了这些命令,然后一切正常。

我用文件夹 gulpnpm install gulp --save 尝试了相同的过程,得到了同样的错误,所以我的结论是我不能让文件夹的名称与我想要的包相同安装,但是有人可以用一些官方文档来支持这个声明吗?

【问题讨论】:

    标签: node.js node-modules


    【解决方案1】:

    当您执行命令npm init 时,您可能需要回答一些相关问题。具体来说,您的模块的名称。当您使用npm init 时,它假定您希望将正在创建的模块的名称称为其所在文件夹的名称。

    因此,阻止您安装依赖项的不是 文件夹 的名称,而是 npm 模块的名称 em> 您正在创建。

    hapi 目录中打开生成的package.json,并将模块重命名为hapi 以外的名称。这是一个有效的示例“package.json”,即使位于名为 hapi 的文件夹中:

    {
      "name": "hapi-test",
      "version": "1.0.0",
      "description": "",
      "main": "index.js",
      "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1"
      },
      "author": "",
      "license": "ISC",
      "dependencies": {
        "hapi": "^7.5.2"
      }
    }
    

    添加备注

    到目前为止,我还没有找到任何文档来解释 npm 上下文中的这种现象;虽然这有点不费吹灰之力。在同一个应用程序中要求具有相同名称的模块会与CommonJS 理念相冲突。

    【讨论】:

    • 我最初将文件夹命名为与我要安装的模块的名称相同的名称。我忽略了npm init 的说明。尽管更改了目录名称,但我遇到了错误。谢谢@shennan,现在我改了package.json的名字,世界太平了:)
    • 遇到了同样的事情,包的名字和模块的名字一样。
    【解决方案2】:

    您的模块名称与您尝试安装的模块名称相同。 NPM 认为您正在将模块安装到自身。更改模块的名称,它将完美安装。

    【讨论】:

      【解决方案3】:

      原因 模块名与库名一致

      解决方案

      1. 将模块名称更改为其他名称
      2. 在 package.json 中更改“名称”

      【讨论】:

        【解决方案4】:

        这个问题可以简单解释如下 package.json 中的包或模块的名称不能与您尝试安装的包或模块的名称相同

        这里hapi 是您的模块的名称,您正在尝试安装名称为hapinpm install hapi --save 的模块

        【讨论】:

          【解决方案5】:

          这是我的初始代码

          {
            "name": "react",
            "version": "1.0.0",
            "description": "",
            "main": "index.js",
            "scripts": {
              "test": "echo \"Error: no test specified\" && exit 1"
            },
            "author": "",
            "license": "ISC",
            "dependencies": {
              "react": "^15.6.1"
            }
          }
          

          引发错误

          npm WARN package.json react@1.0.0 No description
          npm WARN package.json react@1.0.0 No repository field.
          npm WARN package.json react@1.0.0 No README data
          npm WARN install Refusing to install react as a dependency of itself
          

          然后我将名称从 react 重命名为 react_app,我的代码看起来像

          {
            "name": "react_app",
            "version": "1.0.0",
            "description": "",
            "main": "index.js",
            "scripts": {
              "test": "echo \"Error: no test specified\" && exit 1"
            },
            "author": "",
            "license": "ISC",
            "dependencies": {
              "react": "^15.6.1"
            }
          }
          

          然后就成功了

          【讨论】:

            猜你喜欢
            • 2015-11-20
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2020-07-04
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-06-12
            相关资源
            最近更新 更多