将bootstrap.js添加到browserify?

时间:2014-04-09 14:00:51

标签: javascript jquery node.js twitter-bootstrap browserify

所以我想弄明白怎么做?我通过bower下载了bootstrap-sass,并将bootstrap javascript添加到垫片中。

有些事让我感到困惑,bootstrap.js文件看起来像这样。

//= require bootstrap/affix
//= require bootstrap/alert
//= require bootstrap/button
//= require bootstrap/carousel
//= require bootstrap/collapse
//= require bootstrap/dropdown
//= require bootstrap/tab
//= require bootstrap/transition
//= require bootstrap/scrollspy
//= require bootstrap/modal
//= require bootstrap/tooltip
//= require bootstrap/popover

这是一种自我解释,但同时仍然令人困惑,我是否会这样评论?当我添加到bootstrap shim时,我只包含bootstrap.js文件,还是应该链接到我需要的所有文件?

为了避免被黑客攻击(我将在此期间进行),我想尝试获取有关如何将bootstrap.js包含在browserify中的一些信息。

编辑:我想我可能只需要连接我需要的所有文件并包含该脚本,因为当我浏览bootstrap.js时,我就得到了上述内容。

我会在没有评论的情况下尝试,如果失败了,我会将所有脚本连成一个文件,看看会发生什么:)

编辑:嗯,看起来concat理论有效!唯一的问题是jQuery,看一看。

; jQuery = global.jQuery = require("c:\\wamp\\www\\mysite\\app\\client\\requires\\jquery\\js\\jquery.js");
/* ========================================================================
 * Bootstrap: affix.js v3.1.1
 * http://getbootstrap.com/javascript/#affix
 * ========================================================================
 * Copyright 2011-2014 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 * ======================================================================== */

这是我编译的浏览器代码,是我调用引导函数时让它工作的唯一方法,例如$('body').modal('toggle')我必须手动将上面的jQuery更改为$

我尝试在我的垫片中使用两者,但仍然必须手动编写$。实施例

// Notice I use $ here not jQuery like above, this is the only way to get it to work!
; $ = global.jQuery = require("c:\\wamp\\www\\mysite\\app\\client\\requires\\jquery\\js\\jquery.js");
/* ========================================================================
 * Bootstrap: affix.js v3.1.1
 * http://getbootstrap.com/javascript/#affix
 * ========================================================================
 * Copyright 2011-2014 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 * ======================================================================== */

2 个答案:

答案 0 :(得分:12)

这个答案是由原始提问者提供的。它是作为问题的编辑发布的。我把它移到这里,答案就在那里。

  

我重新编译,看起来它现在正在工作,确保在你的内部   你使用$

填充
"bootstrap": {
    "exports": "bootstrap",
    "depends": {
        "jquery": "$"
    }
},

答案 1 :(得分:2)

另一个解决方案是使用Webpack,它有一个脚本加载器来在全局上下文中加载jQuery。