Yeoman with Bootstrap:如何选择jQuery版本?

时间:2014-04-04 06:59:03

标签: jquery twitter-bootstrap internet-explorer-8 yeoman yeoman-generator

我构建了一个定制的Yeoman生成器,可以加载Bootstrap 3等。

bower.json - 模板:

{
  "name": "<%= _.slugify(appname) %>",
  "version": "0.0.0",
  "dependencies": {<% if (includeBootstrap) { %>
    "bootstrap": "~3.0.3",
    "respond": "~1.4.2",
    <% } %>
    <% if (includeD3) { %>
    "d3": "~3.4.4",
    "colorbrewer": "~1.0.0",
    <% } %>
    "modernizr": "~2.6.2"
  }
}

您可能知道,Bootstrap 3包含jQuery作为依赖项,这里是Bootstrap的bower.json

{
  "name": "bootstrap",
  "version": "3.0.3",
  "main": [
    "./dist/js/bootstrap.js", 
    "./dist/css/bootstrap.css", 
    "./dist/fonts/glyphicons-halflings-regular.eot",
    "./dist/fonts/glyphicons-halflings-regular.svg",
    "./dist/fonts/glyphicons-halflings-regular.ttf",
    "./dist/fonts/glyphicons-halflings-regular.woff"
  ],
  "ignore": [
    "**/.*",
    "_*",
    "docs-assets",
    "examples",
    "/fonts",
    "js/tests",
    "CNAME",
    "CONTRIBUTING.md",
    "Gruntfile.js",
    "browserstack.json",
    "composer.json",
    "package.json",
    "*.html"
  ],
  "dependencies": {
    "jquery": ">=1.9.0"
  }
}

因此,生成的yeoman应用程序包含一个文件夹bower_components/jquery,其中包含最新的jQuery版本(2.1.0或更高版本) - 遗憾的是,它不支持IE8。

不幸的是,我需要IE8支持。

现在,如何告诉我的应用它应该加载一个包含bower.json的Bootstrap,其中包含~1.0.0而不是&gt; = 1.9.0?

第二个问题:为什么jQuery安装在与Bootstrap相同的层次结构级别上,即bower_components/jquery/中,而不是bower_components/bootstrap/bower_components/jquery中,因为它是Bootstrap的唯一依赖项,未指定为在我的yeoman bower.json模板中?!这是我觉得很困惑的事情。

2 个答案:

答案 0 :(得分:0)

@ puredevotion的评论是正确的。我做了什么来解决这个问题:我在bower.json中明确添加了jQuery。 Bootstrap识别出这个并且不加载jQuery本身。

这是我更新的bower.json:

{
  "name": "<%= _.slugify(appname) %>",
  "version": "0.0.0",
  "dependencies": {<% if (includeBootstrap) { %>
    "bootstrap": "~3.0.3",
    "respond": "~1.4.2",
    <% } %>
    <% if (includeD3) { %>
    "d3": "~3.4.4",
    "colorbrewer": "~1.0.0",
    <% } %>
    "modernizr": "~2.6.2",
    "jquery": "~1.9.0"
  }
}

我仍然不知道第二个问题的答案。

答案 1 :(得分:-1)

您需要css3-mediaqueries-js查看this如何在您的情况下使用它。