问题描述
我正在尝试安装glob
模块,并且遇到了一个似乎无法理解的怪异错误。
Package.json(这不是代码段,这是用于复制问题的整个文件):
{
"devDependencies": {
"glob": "^7.1.6"
}
}
Bash脚本:
#!/bin/bash -euxo pipefail
rm -rf node_modules || true # remove folder if present
rm package-lock.json || true # remove lockfile if present
npm install --only=development # install devDependencies only
ls node_modules/glob # check whether glob was installed
这可以按预期方式工作-已安装glob
,glob
文件夹的内容已打印到屏幕上,大家都很高兴。
但是当我将swagger-express-middleware
放在主要的dependencies
部分中时:
Package.json:
{
"dependencies": {
"swagger-express-middleware": "^4.0.0"
},"devDependencies": {
"glob": "^7.1.6"
}
}
并运行与上述相同的bash脚本,然后出现以下错误:
ls: node_modules/glob: No such file or directory
换句话说,glob
模块从未安装过,即使唯一的区别是存在一个甚至都没有安装过的依赖项,因为我们专门通过{{1} }。
为什么会这样呢?我一生无法弄清楚为什么npm install --only=development
的存在(请注意,没有其他模块可以这样做)会阻止swagger-express-middleware
的安装。
还有其他类似冲突的例子吗?
设备详细信息(以防万一):macOS Catalina 10.15.7,NPM 6.14.8,节点12.18.2
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)