仅在生产模式下使用 exif-js 的 Angular 无法正常工作



当我在我的项目中制作ng服务时,它的工作就很好了。但是当我运行ng build --prod --base-href时,会出现一些与exif-js相关的问题。

main-es2015.4f373a513488bb1e69c9.js:40745 ERROR ReferenceError: n is not defined
at getStringFromDB (main-es2015.4f373a513488bb1e69c9.js:126856)
at readEXIFData (main-es2015.4f373a513488bb1e69c9.js:126863)
at findEXIFinJPEG (main-es2015.4f373a513488bb1e69c9.js:126564)
at handleBinaryFile (main-es2015.4f373a513488bb1e69c9.js:126485)
at getImageData (main-es2015.4f373a513488bb1e69c9.js:126501)
at Function.push../node_modules/exif-js/exif.js.EXIF.getData (main-es2015.4f373a513488bb1e69c9.js:127098)
at ImagesLoadingService.loadExif (main-es2015.4f373a513488bb1e69c9.js:153715)
at HTMLImageElement.img.onload [as __zone_symbol__ON_PROPERTYload] (main-es2015.4f373a513488bb1e69c9.js:153689)
at HTMLImageElement.wrapFn (polyfills-es2015.c96fb5427ba53ad92441.js:1201)
at ZoneDelegate.invokeTask (polyfills-es2015.c96fb5427ba53ad92441.js:403)

我知道错误原因是某些变量未定义,但为什么在ng 服务上它可以正常工作?

解决

我在exif.js文件中发现问题:

function getStringFromDB(buffer, start, length) {
var outstr = "";
for (let n = start; n < start+length; n++) { // I add let before n variable and now it's work just fine on prod build
outstr += String.fromCharCode(buffer.getUint8(n));
}
return outstr;
}

我在ng build --prod --base-href --optimization=false中构建项目以找到问题所在。在Firefox上,我得到不同的错误描述,所以我找不到特定的代码位置。只有在Chrome上,我才能获得有关此的更具体的信息,并且可以解决我的探针。我希望其他人也会有所帮助:)

我在exif.js文件中发现问题:

function getStringFromDB(buffer, start, length) {
var outstr = "";
for (let n = start; n < start+length; n++) { // I add let before n variable and now it's work just fine on prod build
outstr += String.fromCharCode(buffer.getUint8(n));
}
return outstr;
}

我在ng build --prod --base-href --optimization=false中构建项目以找到问题所在。在Firefox上,我得到不同的错误描述,所以我找不到特定的代码位置。只有在Chrome上,我才能获得有关此的更具体的信息,并且可以解决我的探针。我希望其他人也会有所帮助:)

相关内容

  • 没有找到相关文章

最新更新