我有一个可用于iOS和Android的Cordova应用程序。我刚刚切换到WKWevView引擎,现在它可以正常工作,但是在使用js-image npm模块时出现以下错误:
TypeError:IOBuffer不是构造函数
我坚持如何进一步诊断。我怀疑这可能是Webpack的问题,也许与WKWebView完全无关。 Webpack产生以下代码:
const IOBuffer = __webpack_require__(102);
var io = new IOBuffer();
在这里抛出错误。我检查了IOBuffer对象,它只是一个空哈希({})。
关于如何诊断此病的任何建议? Webpack为什么不加载正确的类?
iobuffer模块已安装为多个版本:
quasar-app@0.0.1 /Users/kristiankauper/dev/hileadzz_app
├─┬ image-js@0.21.6
│ ├─┬ fast-bmp@1.0.0
│ │ └── iobuffer@3.2.0
│ ├─┬ fast-jpeg@1.0.1
│ │ ├── iobuffer@2.1.0
│ │ └─┬ tiff@2.1.0
│ │ └── iobuffer@2.1.0 deduped
│ ├─┬ fast-png@3.1.3
│ │ └── iobuffer@4.0.1 deduped
│ └─┬ tiff@3.0.1
│ └── iobuffer@4.0.1 deduped
└── iobuffer@4.0.1
尝试加载JPEG文件时发生错误,因此正在使用iobuffer@2.1.0库,但是可以确定这是旧版本吗?我认为npm和webpack将这些版本分开,对吗? (我无法升级版本,因为这是image-js / fast-jpeg的最新版本所需要的。)
有什么想法吗?
答案 0 :(得分:0)
原来是这些问题所在:
│ ├─┬ fast-png@3.1.3
│ │ └── iobuffer@4.0.1 deduped
│ └─┬ tiff@3.0.1
│ └── iobuffer@4.0.1 deduped
尽管fast-png和tiff的这些版本都允许iobuffer@4.0.1作为依赖项,但它们似乎不适用于该版本。我将它们都降级为需要iobuffer@3.2.0的那些,现在一切正常:
├─┬ fast-png@3.1.0
│ └── iobuffer@3.2.0
└─┬ tiff@3.0.0
└── iobuffer@3.2.0 deduped