Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用project bower.json限制引导中的jQuery依赖关系?_Javascript_Jquery_Twitter Bootstrap_Bower - Fatal编程技术网

Javascript 如何使用project bower.json限制引导中的jQuery依赖关系?

Javascript 如何使用project bower.json限制引导中的jQuery依赖关系?,javascript,jquery,twitter-bootstrap,bower,Javascript,Jquery,Twitter Bootstrap,Bower,我需要在web应用程序中支持IE8,并且必须确保使用了jquery 1.10+,而不是2.0+ My project bower.json文件的依赖项如下所示: "dependencies": { "bootstrap" : "~3.1.0", "blueimp-gallery": "~2.14.0", "datatables": "~1.10.0", "eonasdan-bootstrap-datetimepicker": "~2.1.30", "hol

我需要在web应用程序中支持IE8,并且必须确保使用了jquery 1.10+,而不是2.0+

My project bower.json文件的依赖项如下所示:

"dependencies": {
    "bootstrap" : "~3.1.0",
    "blueimp-gallery": "~2.14.0",
    "datatables": "~1.10.0",
    "eonasdan-bootstrap-datetimepicker": "~2.1.30",
    "holderjs": "~2.3.0",
    "jasmine-fixture": "~1.2.0",
    "jasmine": "~2.0.0",
    "masonry": "~3.1.5",
    "modernizr": "~2.8.1",
    "momentjs": "~2.5.1",
    "parsleyjs": "~2.0.0",
    "respond": "~1.4.2",
    "selectivizr": "~1.0.2",
    "wookmark-jquery": "~1.4.6",
    "yamm3": "1.0.0",
    "requirejs": "~2.1.11"
  },

如何修改我的bower.json依赖项以“限制”它自己的配置文件将安装的引导jQuery依赖项?

您可以始终在bower.json文件中包含jQuery本身:

"jquery": "1.10",
如果您的其他依赖项需要更高版本的jquery,bower将在
bower安装时提示您希望解析哪个版本的jquery


但是,请记住,这可能会使您的项目不稳定,因为许多其他依赖项可能会使用较新版本的jquery

您在bower.json文件中引用了Modernize,因此准备随时包含不同版本的jquery:

Modernize.load({
    test: !document.attachEvent,
    yep: "/path/to/jquery2.js",
    nope: "/path/to/jquery1.js
});
我唯一不能百分之百确定的部分是测试(我现在在安卓手机上,所以你得试一下)

您还可以使用IE条件注释来加载正确版本的jQuery


不同版本之间存在API差异,因此您可以选择对IE9和更新版本使用Zepto,对IE8使用jQuery。Zepto是一个与jquery兼容的库,它使用本机DOM方法而不是一堆补丁来实现跨浏览器兼容性。不管怎样,我都会坚持使用jQuery的一个版本。最低公分母all to常赢。

您不能为1.x分支命名
jQuery
,因此只需为其命名一个不同的名称,例如:

"dependencies": {
        "jquery-legacy": "jquery#1.10",
        "jquery": "~2.1.1",
}
然后,您可以在HTML中包含所需的内容,我会这样做:

<!-- jQuery -->
<!--[if IE 8 ]>
    <script src="assets/bin/lib/js/jquery-legacy/jquery.min.js"></script>   
<!--<![endif]--> 
<!--[if (gt IE 9)|!(IE)]>
    <script src="assets/bin/lib/js/jquery/jquery.min.js"></script>  
<!--<![endif]-->