我正在使用打字稿AMD模块。
在我的 app.ts 中,我获得了以下导入:
import $ from 'jquery';
import 'popper.js';
import 'bootstrap';
//import 'bootstrap-toggle';
我的代码具有jQuery,引导程序和引导程序切换功能。 如果我已注释掉引导程序切换库,如上面显示的上部代码,则我的应用程序运行正常,并且没有显示错误。
但是如果没有我的bootstrap-toggle库,我将无法使用该库的功能。
如果我对此表示赞赏,则会收到以下错误:
ReferenceError:未定义jQuery(在bootstrap-toggle.js中)
我的 bootstrap-toggle.js 文件也使用具有以下功能的jQuery:
function ($) {
...
}(jQuery);
我认为,问题在于我只为我的 app.js 包括我的jQuery,而没有在bootstrap-toggle.js
中包括我的jQuery。但是如何定义全局导入?我不会以这种方式在我的bootstrap-toggle.js文件中导入jQuery,因为它是here的工具,不是我编写的。
谢谢。
最好的问候,
索尼
答案 0 :(得分:0)
我找到了解决方案。 Typescript AMD模块使用了require JS,因此它必须建立一个require js配置文件,如下所示:
requirejs.config({
baseUrl: '',
paths: {
app: 'app',
jquery: 'jquery'
},
shim: {
"bootstrap-toggle" : ["jquery"]
}
});
如果jQuery应该可用于引导程序切换,则它需要require配置中的shim选项。