首页 > 解决方案 > 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 版的一个错误吗?

标签: node.jsnpmnpm-install

解决方案


这是npm的一个悬而未决的问题:

根据 github 问题线程,临时解决方法是像这样使用 no-shrinkwrap:

--production --no-shrinkwrap

但请注意,这样做的抵押品是package-lock.json文件不会被考虑在内。


推荐阅读