我记得在某处读过,在 bower 中,您可以将包安装为子树,这意味着一个项目可以使用同一库的多个版本。每个版本的库都充当需要不同版本的其他库的依赖项。
举个例子..假设我正在开发一个同时使用angular-google-maps
和ui-slider
..
angular-google-maps
至少需要angular 1.2.18+
并且ui-slider
需要的项目angular 1.0.8
我希望得到这样的东西(即凉亭列表的输出):
├── angular#1.2.18
├─┬ angular-google-maps#1.1.2 extraneous (latest is 1.1.6)
│ ├── angular#1.2.18
│ └── ..
├─┬ angular-ui-slider#0.0.2
│ ├── angular#1.0.8
│ ├── ..
相反,当我尝试在已经使用的现有项目上安装 ui-slider 时angular 1.2.18
,会出现以下提示:
Unable to find a suitable version for angular, please choose one:
1) angular#~1.0.x which resolved to 1.0.8 and is required by angular-ui-slider#0.0.2
2) angular#1.2.5 which resolved to 1.2.5 and is required by angular-sanitize#1.2.5
3) angular#1.2.18 which resolved to 1.2.18 and is required by angular-brunch-seed
4) angular#>=1 which resolved to 1.2.19 and is required by angular-bootstrap#0.5.0
5) angular#~1.2.0 which resolved to 1.2.19 and is required by angular-masonry#0.8.1
6) angular#1.2.x which resolved to 1.2.19 and is required by angular-google-maps#1.1.2
7) angular#1.2.19 which resolved to 1.2.19 and is required by angular-animate#1.2.19
8) angular#* which resolved to 1.2.19 and is required by restangular#1.4.0
Prefix the choice with ! to persist it to bower.json
我自然选择了1.0.8:
[?] Answer: 1
bower angular#~1.0.x install angular#1.0.8
bower angular-ui-slider#~0.0.2 install angular-ui-slider#0.0.2
但是,当我跑步时,bower list
我得到:
├── angular#1.0.8 incompatible with 1.2.18 (1.2.18 available, latest is 1.3.0-build.2867+sha.f07af61)
├─┬ angular-animate#1.2.19 (latest is 1.3.0-build.2867+sha.f07af61)
│ └── angular#1.0.8 incompatible with 1.2.19 (1.2.19 available, latest is 1.3.0-build.2867+sha.f07af61)
├─┬ angular-bootstrap#0.5.0 (latest is 0.11.0)
│ └── angular#1.0.8 (1.3.0-build.2867+sha.f07af61 available)
├─┬ angular-cookies#1.2.5 (latest is 1.3.0-build.2867+sha.f07af61)
│ └── angular#1.0.8 incompatible with 1.2.5 (1.2.5 available, latest is 1.3.0-build.2867+sha.f07af61)
├─┬ angular-google-maps#1.1.2 extraneous (latest is 1.1.6)
│ ├── angular#1.0.8 incompatible with 1.2.x (1.2.19 available, latest is 1.3.0-
├─┬ angular-ui-slider#0.0.2
│ ├── angular#1.0.8 (latest is 1.3.0-build.2867+sha.f07af61)
..
问题:为什么 bowerangular 1.0.8
将默认角度和用于我所有其他库的默认角度设置为 .. 而不是保留angular 1.2.18
并仅使用angular 1.0.8
for angular-ui-slider
?