在Webpack中使用Bootstrap时,为什么我需要为jQuery特殊的“hack”

时间:2017-01-19 09:43:02

标签: twitter-bootstrap angular webpack

通过阅读this thread解决了我原来的问题,但由于我想了解整个网络包系统,我问自己:

为什么我必须这样做? (自己导入jQuery并在webpack配置中以某种方式明确地包含它)

当我导入bootstrap时,不应该webpack发现jQuery是bootstrap的依赖项并添加它吗?我只是不明白为什么会有这么多自动发生的事情,但是如果没有我黑客入侵我的webpack配置就会破坏。

这基本上就是我的设置:

  • 克隆使用webpack的angular2种子:https://github.com/angular/angular2-seed

  • 安装的bootstrap包: npm install bootstrap --save(=>“bootstrap”:“^ 3.3.7”)

  • 在我的app.component.ts中导入了bootstrap css: import'bootstrap / dist / css / bootstrap.css';

css似乎导入得很好,但我得到了“未捕获的ReferenceError:jQuery未定义”(在运行时),它也出现在上面提到的线程中。

我的问题无疑与this one类似,但我不认为答案真的令人信服。

当模块使用jQuery时,它们不应该以某种方式导入jQuery吗?

或者,以另一种方式问:如果我收到此运行时错误,是不是意味着contrib模块的devs工作有点脏?

请考虑我

  • 新增到1. stackoverflow,2。webpack

  • 模块化JavaScript的新功能

  • 对正在解决的具体问题不感兴趣,而不是对该主题的一般启示感兴趣

提前致谢

干杯 索伦

1 个答案:

答案 0 :(得分:0)

我同意。引导程序PR #16534 CommonJS: require() jQuery if not already loaded尝试更改行为(即,除非存在,否则自动require jQuery),但由于bootstrap 3不再进行任何开发,因此已关闭。