Webpack无法加载正确的模块

时间:2019-05-06 08:09:14

标签: cordova webpack

我有一个可用于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的最新版本所需要的。)

有什么想法吗?

1 个答案:

答案 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