Bower global .bowerrc resolution versus interactive conflict prompts in CI
0 reputation · 10 Sept 2025, 12:36 UTC
Goal: run unattended Bower installs in CI without hanging on dependency version conflicts, while avoiding unintended upgrades or downgrades of unrelated transitive packages.
Bower 1.8.x enforces a flat dependency tree, so two packages requiring incompatible versions of the same dependency abort installation and prompt interactively. The .bowerrc resolution key can pre-select a version, but the documented schema applies the pin globally to a package name and offers no per-dependent scoping. Installation hooks run after resolution, so they cannot change the selected version.
Unresolved trade-off: pre-populate global resolution entries for every conflict versus allowing interactive prompts that break non-interactive CI runners.
Does resolution affect only direct dependencies in bower.json, or also transitive dependencies pulled in by other packages? Can CI bypass the prompt without a global pin for each conflicting package? Is there any documented mechanism to scope a version selection to one dependent package instead of all dependents?