node.js - npm 无缘无故安装可选依赖项“chromedriver”
问题描述
我在 NPM 版本 5.8.0 上,我运行了这个命令:
npm install --no-optional --silent
chromedriver 被声明为可选的 dep:
"optionalDependencies": {
"chromedriver": "^2.35.0"
},
当我运行安装命令时,npm 安装了 chromedriver,但我不知道为什么。
为了检查其他东西是否依赖于 chromedriver,我跑了:
$ npm la chromedriver
cdt-now@0.1.12
│ /Users/alexamil/WebstormProjects/nabisco/cdt-now
│
└── chromedriver@2.35.0
ChromeDriver for Selenium
git://github.com/giggio/node-chromedriver.git
https://github.com/giggio/node-chromedriver
这只是 NPM 5.8.x 版的一个错误吗?
解决方案
这是npm的一个悬而未决的问题:
根据 github 问题线程,临时解决方法是像这样使用 no-shrinkwrap:
--production --no-shrinkwrap
但请注意,这样做的抵押品是package-lock.json
文件不会被考虑在内。
推荐阅读
- python - 在 QGraphicsView 中播放图像序列(神秘的内存泄漏)
- angular - RxJS - 如何用 Observable 替换订阅中的回调
- c# - 在 Windows 服务中部署托管 WCF 服务时出现问题
- c# - 如何在 C# 中由另一个线程挂起一个线程?
- google-cloud-platform - 需要将我自己的自定义日志(html 或 txt 格式)与 prometheus 或 Kibana 集成(使用 fluentd)
- python - 使用 subprocess.Popen 在 Windows 中运行批处理文件
- android - SearchView 过滤器,在列表视图中获得正确的位置
- kubernetes - 在 Helm 的升级前钩子中传递参数
- automata - 图灵机状态设计
- javascript - 根据 php 中下拉列表的选择,在文本框中动态填充 db 值