我想在我使用webpack开发的Angular 2应用程序中使用bootstrap的carousel组件。我有真正的问题需要bootsrap.js和jQuery.js。webpack&jQuery:不能很好地玩在一起
在这个问题上有很多很多帖子在stackoverflow和世界各地的其他地方interweb。 This post,例如,看起来真的很有前途,但我把它遵循的信,仍然可以得到在浏览器中的错误:
Uncaught Error: Bootstrap's JavaScript requires jQuery
在我的组件定义文件,我有两个相当臭,并怀疑在寻找需要:
require("../../../../node_modules/jquery/dist/jquery.js");
require('../../../../node_modules/bootstrap-sass/assets/javascripts/bootstrap.min.js');
我试过非缩小版的bootstrap,.js,以及require的几个变体,比如require('jquery')
,但是错误依然存在。
请帮忙!我已经在另一个项目上工作,并不明白为什么jQuery不玩。
有一两件事我想这样做是简单地直接在组件需要jQuery库,就像这样:
window.jquery = window.$ = require('jquery');
打字稿编译器抱怨,可以预见。创建包含$
和jquery
成员的窗口界面不起作用。编者抱怨。
我会很高兴现在这个解决方案,直到我能找到一个不太臭的解决方案。
想法或解决方案非常赞赏和奖励与虚拟甜甜圈。
嗯。继basarat的建议,我试过如下:
import $ = require('jquery');
import bootstrap = require('bootstrap-sass');
这产生的VSC和的WebPack错误:cannot find module jquery
和cannot find module bootstrap-sass
。奇怪的是,删除作业,像这样:
require('jquery');
require('bootstrap-sass');
...和模块神奇地发现。有关嘶嘶声的不同错误,但至少它发现了模块。
想法?
'和模块神奇地发现。在'compile'时间和'runtime'找到的模块是不同的东西。要在编译时找到你需要的TypeScript定义(例如'typings install --ambient jquery')。你将需要自己编写'bootstrap-sass'定义 – basarat
这并不能解决问题,它在编译时发生。甚至在编译之前:VS Code强调它。但奇怪的是,只有当你预先输入$ ='时才会发生这种情况。 – serlingpa