npm WARN安装拒绝安装hapi作为自己的依赖
我试图做以下(从官方网站的指示):
mkdir hapi && cd hapi
-
npm init
-
npm install hapi --save
但是这给了我一个像这样的错误:
npm WARN安装拒绝安装hapi作为自己的依赖
现在,我做了一个名为hapiTest
的新testing文件夹,并重复了这些命令,然后一切正常。
我尝试了一个文件夹gulp
和npm 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认为你正在安装模块。 改变你的模块的名称,它会完美安装。
原因模块名称与库名称相同
解
- 将模块名称更改为其他名称
- 更改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" } }
那么它的工作