强制版本的传递依赖(依赖的依赖)与yarn

Léo*_*oco 8 transitive-dependency yarnpkg yarn-lock.json

"csv-file-validator": "^1.8.0"我正在使用带有 3 个依赖项的包

 famulus "2.1.2"
 lodash "4.17.15"
 papaparse "^5.2.0"
Run Code Online (Sandbox Code Playgroud)

我想更新/强制lodash使用 to be的版本4.17.20。我发现了选择性依赖解析并在我的package.json

"resolutions": {
  "csv-file-validator/lodash": "^4.17.20"
}
Run Code Online (Sandbox Code Playgroud)

我删除了yarn.lock,node_modules文件夹并yarn install再次运行。然而lodash版本仍然是4.17.15

csv-file-validator@^1.8.0:
version "1.8.0"
resolved "https://pkgs.dev.azure.com/RCTechnologies/EMA/_packaging/EMA/npm/registry/csv-file-validator/-/csv-file-validator-1.8.0.tgz#f8b879f533ce8c84b115d0ed2eca8e691249ec22"
integrity sha1-+Lh59TPOjISxFdDtLsqOaRJJ7CI=
dependencies:
  famulus "2.1.2"
  lodash "4.17.15"
  papaparse "^5.2.0"
Run Code Online (Sandbox Code Playgroud)

有可能实现这一目标吗?如果是的话,我错过了什么吗?

Ale*_*nov 0

yarn.lock将始终显示该版本的package.json. 您需要检查 的lodash条目,而不是它应该看起来像

lodash@4.17.15, lodash@^4.17.20, <maybe other version strings>:
version "4.17.20"
...
Run Code Online (Sandbox Code Playgroud)

如果没有这个决议,你会得到

lodash@4.17.15, <maybe other version strings>:
version "4.17.15"
...
Run Code Online (Sandbox Code Playgroud)

或者使用yarn why lodash.