我正在尝试将LZString 1.4.4导入到我的webpack项目中,但是我在chrome控制台中遇到此错误:
core.es5.js?de3d:1020 ERROR TypeError: Cannot read property 'compress' of undefined
at FileReader.reader.onload (file-upload.ts?e535:117)
at ZoneDelegate.invoke (zone.js?6524:392)
at Object.onInvoke (core.es5.js?de3d:3890)
at ZoneDelegate.invoke (zone.js?6524:391)
at Zone.runGuarded (zone.js?6524:155)
at FileReader.eval (zone.js?6524:133)
我是这样导入LZString的:
import { LZString } from 'lz-string';
使用LZString的代码段是这样的:
private compressAndChangeModel(file:File){
let reader:FileReader = new FileReader();
reader.onload = () => {
let compressed:string=LZString.compress(reader.result);
this.modelChange.next(compressed);
};
reader.onerror = (error) => {
console.log('Error when trying to generate base64: ', error);
};
reader.readAsDataURL(file);
}
如何在我的webpack项目中导入LZString的正确方法?
最佳答案
LZString
doesn't export a property called LZString
。您可以使用合成的默认导入import LZString from 'lz-string';
。
但是,compress
已导出,因此您可以只使用import { compress } from 'lz-string'
,也可以使用compress()
。
如果您不喜欢通用的compress
名称,也可以使用import { compress as lzStringCompress } from 'lz-string';
代替它的别名。