将 bootstrap.js 添加到 browserify?

Posted

技术标签:

【中文标题】将 bootstrap.js 添加到 browserify?【英文标题】:Adding bootstrap.js to browserify? 【发布时间】:2014-05-22 19:09:15 【问题描述】:

所以我想弄清楚如何做到这一点?我通过 bower 下载了 bootstrap-sass 并将 bootstrap javascript 添加到 shim 中。

有几件事让我很困惑,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 时,我只会得到上述内容。

我会尝试不使用 cmets,然后如果失败,我会将所有脚本合并到一个文件中,看看会发生什么:)

编辑: 嗯,看起来 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)
 * ======================================================================== */

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

我尝试在我的 shim 中同时使用两者,但我必须手动编写 $。示例

// 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)
 * ======================================================================== */

【问题讨论】:

【参考方案1】:

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

我重新编译了,现在看起来可以工作了,请确保在你的 你使用的垫片$

"bootstrap": 
    "exports": "bootstrap",
    "depends": 
        "jquery": "$"
    
,

【讨论】:

是的,我明白了,browserify 真的很令人沮丧,但是当我有疑问时,我意识到只是摆弄 shim。 只是为了回答和给出正确的解决方案,即使我有它,也要标记它...... 谢谢,你太慷慨了。 这必须添加到 package.json,而不是 bower.json.. 它可以工作,但你必须这样写:“browserify-shim”:“bootstrap”:“exports”: “引导”,“依赖”:[“jquery:$”] 我将“jquery:$”更改为“jquery:jQuery”,现在可以使用了。【参考方案2】:

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

【讨论】:

我正在这样使用它require("jquery"); require('jquery-ui'); require('bootstrap-sass'); 仍然消息是一样的。

以上是关于将 bootstrap.js 添加到 browserify?的主要内容,如果未能解决你的问题,请参考以下文章

使用 NPM 将 Mmenu 添加到 Laravel

正则表达式使用 bootstrap-validate.js 将输入值设置在 1 到 10 之间

bootstrap-table中导出excel插件bootstrap-table-export使用

如何在 Bootstrap 中向轮播幻灯片添加/删除“上一个”和“下一个”类?

如何将结构传递到browse_callback,然后进一步向下传递到avahi中的resolve_callback?

WebStorm 中 Bootstrap-Vue.js 支持的未知 html 标签警告