开发掉坑(一)tar命令解压文件覆盖源文件


今天在编译机上编译前端代码,报了找不到依赖的异常。检查后发现是node_modules/.bin下少了一些文件。

一开始疑惑为什么本地能成功生成软链在node_modules/.bin,服务器上面却不行呢?
带着疑惑检查了一遍shell脚本,发现原来在安装依赖的时候有一个坑。

安装依赖的过程如下:

  1. 执行npm i安装依赖
  2. 解压编译好的二进制依赖到node_modules

问题就出在第二步,使用tar -zxvf xxx.gz -C node_modules解压文件,会把同名的源文件覆盖掉,导致第一步生成的.bin被覆盖了。

解决后,思考了一下以后如何避免这种问题:

  1. 使用了解不深的技术时,要详细阅读api文档,清楚调用它会带来什么结果。
  2. 测试要到位,这次是之前改了编译逻辑,没有覆盖测试,导致遇到这个难以察觉的bug。
  3. 排查问题时,本地环境要与服务器环境一致,要一步步debug推进,看看究竟是拿一步出问题。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2026 CODEPRJ.COM