Typesctript和React的二三事

折磨了我近一个星期的问题终于找到了答案,一开始我只是想一个项目的mapbox地图放到另一个项目的storybook上用,但是首先迎面而来的问题就是:我明明按另一个文件安装了相同的包,另一边却报错,明明声明文件我也复制了,可还是说:Namespace '"mapbox-gl" has no exported member 'Map''……我看了下原项目,这个Map居然是引用C:\Users\用户\AppData\Local\Microsoft\TypeScript\3.3\node_modules\@types\mapbox-gl\index.d.ts,一般不是都来源于项目文件下的node_modules么?那我就把@types\mapbox-gl也安装了好了。安装完了之后虽然是能运行了,但是请求的地址总是有问题,地图一片灰色,比例尺这控件却正常显示……

后来问了同事才知道,这个mapbox是改造过的,必需通过我们阿里云服务上那版本才可以正常使用……但是我明明改了nrm走阿里云,并且重装安完了,然后又回到了第一个问题:Namespace '"mapbox-gl" has no exported member 'Map''……

这问题我一直以为是包安装的不对,直到我用第三个项目把做两边演化成同样的包却还报出这问题后才知道,这问题应该是其他文件,最后一个个对比发现Typescript的配置文件tsconfig.json才是罪魁祸首,因为一个项目少了"skipLibCheck": true的配置,导致了storybook总报错……

最后重来一遍的时候确认了,nrm+package.json也不能保证我用的是自己的包,还得去改package-lock.json才能确定。

P.S.公司网络还老作对,经常npm install失败,还得用手机热点重装包,真心浪费时间。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章