微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

仅安装devDependencies-`swagger-express-middleware`会阻止`glob`的安装

如何解决仅安装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

这可以按预期方式工作-已安装globglob文件夹的内容已打印到屏幕上,大家都很高兴。

但是当我将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 举报,一经查实,本站将立刻删除。