如何解决仅安装devDependencies-`swagger-express-middleware`会阻止`glob`的安装
我正在尝试安装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 举报,一经查实,本站将立刻删除。