簡體   English   中英

如何使用我的項目bower.json限制Bootstrap中的jQuery依賴?

[英]How do I limit jQuery dependency in Bootstrap with my project bower.json?

我需要在Web應用程序中支持IE8,並且必須確保使用jquery 1.10+而不是2.0+。

我的項目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依賴關系以'限制'它自己的配置文件將安裝的Bootstrap jQuery依賴項?

你不能命名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]--> 

您可以在bower.json文件中引用Modernize,這樣您就可以動態地包含不同版本的jQuery:

Modernize.load({
    test: !document.attachEvent,
    yep: "/path/to/jquery2.js",
    nope: "/path/to/jquery1.js
});

我不是100%肯定的唯一部分是測試(我現在在我的Android手機上,所以你將不得不玩它)。

您還可以使用IE條件注釋來加載正確版本的jQuery。

版本之間存在API差異,因此您可以選擇使用Zepto for IE9和更新版本以及jQuery for IE8。 Zepto是一個jquery兼容庫,它使用本機DOM方法而不是一堆補丁來實現跨瀏覽器兼容性。 無論哪種方式,我都堅持使用jQuery的一個版本。 所有經常獲勝的最低公分母。

你總是可以在你的bower.json文件中包含jquery:

"jquery": "1.10",

如果您的其他依賴項需要更高版本的jquery,bower將在bower install時提示您bower install哪個版本的jquery。

但是,請記住,它可能會使您的項目不穩定,因為許多其他依賴項可能會使用更高版本的jquery

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM