说在前面
最近在新拉项目执行install
以及run
命令时,两个项目同时报了类似的错误,报错详情如下图所示。
因为之前同事运行代码没有问题,所以基本的问题可以定位在某个依赖版本问题,考虑到时间先后,大概率是新版本使用了一些新的特性,导致loader并不能正确的理解代码的语义。
问题解决
方法一:直接打包同事的node_modules文件夹
这个是第一次遇到这个问题时我采用的解决办法,因为项目工期紧张,所以直接用了最简单粗暴的方法,毋庸置疑,这样是可以解决上述问题的。
方法二:复制同事的package-lock.json文件(未验证)
之所以未验证,是我打算用这个方法的时候,直接报错了,之前也了解这方面的内容,Mac电脑和Windows电脑的package-lock.json
是不通用的,这也是最初我们没有选择提交package-lock.json
到代码仓库上的原因,但是我认为这个办法是可行的。
方法三:验证问题的发生原因
报错提示相对比较明显,问题出在mapbox-gl.js
这个文件上,我本来是打算找到报错的位置,但是文件是压缩过的,并不好定位,所以我根据同事package-lock.json
下载到了对应版本的mapbox-gl
包,果不其然,项目可以正常的启动了。
说到最后
文章本身没什么深度,希望能给遇到类似问题的同学一个解决思路,欢迎大家留言讨论。