node 长期以来不支持 bigint,调用别人接口返回的 json 里面包含很长的数字,JSON.parse(str)出来数字就被截断了,没有把精度完全保存下来,引起后续一系列错误。
为了解决这问题我暂时用个野路子,引入 npm 第三方库 json-bigint:
https://github.com/sidorares/json-bigintJSONbig.parse(str)替换 JSON.parse(str)搞定。
今天突然发现 node 新版 v10.13 原生支持 bigint,欣喜若狂,问题在于新版完全抛弃 new Buffer()这种写法,好多第三方库都是这样写的,不可能为了解决一个问题引出 N 个其他问题,这就是我的痛点!
官网给了一个解决办法:
https://nodejs.org/en/docs/guides/buffer-constructor-deprecation/貌似先用 grep 命令找出项目中所有过期语法,再批量替换:
grep -nrE '[^a-zA-Z](Slow)?Buffer\s*\(' --exclude-dir node_modules
自己代码没问题,关键是有很多第三方库大量使用过期语法,这种情况有什么好的解决办法?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/507048
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.