如何导入不使用awesome typescript loader导出模块的npm包?
我正在尝试使用webpack awesome typescript loader捆绑我的项目,但是我遇到了一些无法将自己导出为模块的模块的问题 一个例子是引导对话框npm包(我安装了引导开关和@types/bootstrap开关包)。@types不导出模块,只声明一个名称空间,并添加到JQuery接口。 : 在我的app.ts中,我这样使用它:如何导入不使用awesome typescript loader导出模块的npm包?,typescript,npm,Typescript,Npm,我正在尝试使用webpack awesome typescript loader捆绑我的项目,但是我遇到了一些无法将自己导出为模块的模块的问题 一个例子是引导对话框npm包(我安装了引导开关和@types/bootstrap开关包)。@types不导出模块,只声明一个名称空间,并添加到JQuery接口。 : 在我的app.ts中,我这样使用它: import {OtherClass} from './otherclass' $(document).ready(()=>{ let t
import {OtherClass} from './otherclass'
$(document).ready(()=>{
let thisPage= new PageEntry ();
thisPage.init();
}
class PageEntry {
public init(): void {
$('.bss').bootstrapSwitch();
let x = new OtherClass();
x.doSomething();
}
}
但webpack的输出不包括引导开关代码。我试着加上:
import*作为“引导开关”的引导开关代码>但是我显然得到了一个错误
节点_modules/@types/bootstrap switch/index.d.ts'不是模块
如何确保引导开关被拉入
我以bootstrap switch为例,但我有大约5个包有相同的问题。import*as bs from'bootstrap switch'代码>当然给出了一个错误,因为没有导出模块
然而,下面两行对我来说很有用。。。只是不确定这是最好的方法:
declare var require: any;
let bs = require('bootstrap-switch');
import {OtherClass} from './otherclass'
希望这对别人有帮助。让我知道是否有更好的方法。如果一个文件没有导出,因此仅为其副作用而导入(例如,它增加了jQuery
),那么在ECMAScript中导入它的正确方法,以及通过扩展名TypeScript,如下所示
import 'bootstrap-switch';
一个更完整的示例:
import $ from 'jquery';
import 'bootstrap-switch';
$("[name='my-checkbox']").bootstrapSwitch();
我已经能够通过以下方式实现这一点:最肯定的是更好的方式