ionic pdf查看失败引发的相关问题

商宝
2023-12-01

这个问题比较偶然,所以在这里记录一下。

这个ionic项目有一个pdf查看的功能,用到了插件ng2-pdf-viewer这个插件,之前在android上跑的一直是好好的,但是最近突然有人反馈在ios上查看不了pdf了。拉取项目,打包后打开这个项目,爆了一个rxjs的错,在网上查找后,将rxjs的版本由5.1.1改为5.5.2,然后项目可以跑了,但是项目在构建时又出现一个错,

ionic-img-viewer/dist/es2015/src/module.d.ts, found version 4, expected 3

截取的,就是这么一个错,在墙内没找到我想要的,墙外又不定期的进不去,最终无果;

我用自己早先(半年以前)npm install拿下来的node_module来编译项目,android这边是OK的,然后我在当前环境下执行了

ionic build ios

拿到ios项目,然后让别人打包,运行出来是OK的,这么说来那就是node_module出了问题,
就去排查node_module,我发现能运行的node_module中的ng2-pdf-viewer的版本是1.1.4,而我的package.json中明明定义的是1.1.0,不能运行的node_module中的版本是1.2.7(关于这个package.json的问题后面再说)

最终我将能运行的1.1.4放到不能运行的中去,抛开别的问题,是可以用的

这里还涉及到了另一个插件ionic-img-viewer,也是版本问题,他在2.9.x的版本中必须要求使用angluar要求必须要在5.+以上的版本,而我们的定位则低于5.+

此种种种,都是版本惹的祸

ng2-pdf-viewer在版本1.2.2是个分界线,要额外注意

最终才发现是当初别人开发这个项目的时候,这几个的版本前面都是用的^符号,也就是中间版本始终保持最新,本来是好意,但是谁知以上两个控件都在中间版本出幺蛾子了,这种变动为什么不出个大版本???

因为这是从别人手里接过来的半成品,从来没接触过有package.json的相关项目,根本就不知道^和~这种东西,所以纠结了一天半,当初压根就没往这上面想。。。

参考: Node.js中package.json中库的版本号详解(^和~区别)


 类似资料: