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

我试图做以下(从官方网站的指示):

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

但是这给了我一个像这样的错误:

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

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

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

当你执行命令npm init ,可能有一些相关的问题需要回答。 具体来说,你的模块的名称。 当你使用npm init ,它假定你想要创build的模块的名称被称为它所在的文件夹的名称。

所以这不是阻止你安装依赖的文件夹的名字,它是你正在创build的npm模块的名字。

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" } } 

添加了注释

我还没有find任何文件来解释这种现象在npm的情况下。 尽pipe这是一个不费吹灰之力。 在相同的应用程序中要求具有相同名称的模块将与CommonJS理念冲突。

您的模块名称与您要安装的模块相同。 NPM认为你正在安装模块。 改变你的模块的名称,它会完美安装。

原因模块名称与库名称相同

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

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

这里hapi是你的模块的名字,你正在尝试安装一个名字为hapi的模块,用npm install hapi --save

这是我最初的代码

 { "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_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" } } 

那么它的工作