我尝试执行以下操作(根据官方网站的说明):
mkdir hapi && cd hapi
npm init
npm install hapi --save
但这给我这样的错误:
npm WARN install拒绝安装hapi作为其自身的依赖项
现在,我创建了一个名为的新测试文件夹,hapiTest并重复了命令,然后一切正常。
hapiTest
我使用文件夹gulp和尝试了相同的过程npm install gulp --save,并遇到了相同的错误,所以我的结论是我不能使该文件夹的名称与我要安装的软件包的名称相同,但是有人可以备份此语句有一些官方文件?
gulp
npm install gulp --save
执行命令时npm init,可能需要回答一些相关问题。具体来说,就是模块的名称。当使用时npm init,它假定您希望将要创建的模块的名称称为其所在文件夹的名称。
因此,不是阻止您安装依赖项的 文件夹 的名称,而是您正在创建的 npm模块 的名称。
package.json在hapi目录中打开结果,然后将该模块重命名为hapi。这是一个即使在名为 hapi 的文件夹中也可以使用的示例“ package.json” :
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原理冲突。