编程语言
首页 > 编程语言> > javascript – 如何隔离凉亭中的依赖关系

javascript – 如何隔离凉亭中的依赖关系

作者:互联网

我记得读到某个地方,在凉亭中,您可以将软件包作为子树安装,这意味着一个项目可以使用同一个库的多个版本..每个版本的库都充当了需要不同版本的其他库的依赖项.

作为一个例子..假设我正在开发一个使用angular-google-maps和ui-slider的项目..
angular-google-maps至少要求角度为1.2.18,而ui-slider需要角度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
│ ├── ..

相反,当我尝试在已经使用角度为1.2.18的现有项目上安装ui-slider时,我得到以下提示:

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

但是,当我运行凉亭列表时,我得到:

├── 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)
..

问题:为什么凉亭使角度1.0.8成为默认角度和用于我所有其他库的一个…而不是保持角度1.2.18并且只使用角度1.0.8用于角度ui滑块?

解决方法:

您不能同时运行两个版本的角度运行.所以bower要求您选择要安装的那个.在这里,您选择1,因此无论兼容性如何,它都会为您的所有包安装角度1.0.8依赖性.
这是设计意图的行为.

标签:jquery,javascript,angularjs,bower,bower-install
来源: https://codeday.me/bug/20190708/1404424.html