我正在尝试使用webpack awesome-typescript-loader来捆绑我的项目,但是我遇到了一些不能将自己导出为模块的模块的问题。
一个例子是bootstrap-dialog npm包(我安装了bootstrap-switch和@ types / bootstrap-switch包)。 @types不导出模块,只是声明一个名称空间,并添加到JQuery接口。 :options
在我的app.ts中我使用它:
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的输出不包含bootstrapSwitch代码。我尝试添加:
import * as BootstrapSwitch from 'bootstrap-switch';
但我显然得到一个错误说明
node_modules/@types/bootstrap-switch/index.d.ts'不是模块。
如何确保引导开关被拉入?
我使用bootstrap-switch作为示例,但我有大约5个具有相同问题的包。
答案 0 :(得分:0)
import * as bs from 'bootstrap-switch';
当然会出错,因为没有导出模块。
然而以下两行对我有用......只是不确定这是最好的方法:
declare var require: any;
let bs = require('bootstrap-switch');
import {OtherClass} from './otherclass'
希望这有助于某人。如果有更好的方法,请告诉我。
答案 1 :(得分:0)
如果文件没有导出,因此仅为其副作用导入(例如,它会增加$ file=file1.txt
$ while read line; do
if [[ $line =~ Book: ]]; then
echo "${line##*: }" | tr '\n' '|';
fi ;
done < "$file";
echo -e '\t';
while read line; do
if [[ $line =~ Fruit: ]]; then
echo "${line##*: }" | tr '\n' '|';
fi ;
done < "$file";
echo -e '\t'
),在ECMAScript中以及通过扩展TypeScript导入它的正确方法如下:
jQuery
更完整的例子:
import 'bootstrap-switch';