大家好,我是农村程序员,独立开发者,行业观察员,前端之虎陈随易。
- 关注公众号:
陈随易
,获取最新文章推送 (很多内容只在公众号发布
) - 个人网站 1️⃣:https://chensuiyi.me
- 个人网站 2️⃣:https://me.yicode.tech
- 加入交流群,公众号或者个人网站联系我即可
我会在这里分享关于 编程技术
、独立开发
、行业资讯
,思考感悟
等内容。
所有文章都是古法手打,经过了深度思考和总结,不含 AI 添加剂,请放心食用,一起灵魂交流。
如果本文能给你提供启发或帮助,欢迎动动小手指,一键三连 (点赞
、评论
、转发
),给我一些支持和鼓励,谢谢。
腾讯云静态存储 cos-nodejs-sdk-v5
包终于要升级了,解决了一个用着没事,但是看着碍眼的问题,下文细说。
这次的版本更新,距离上次已经 10 个月时间。
若不是依赖的 request
包出现警告提示,很多人都进行了反馈,估计这个更新要等更久,原因是这样的。
punycode
是 npm 包 request
的依赖,它的作用如下所示:
// punycode.decode
punycode.decode('maana-pta'); // 'mañana'
punycode.decode('--dqo34k'); // '☃-⌘'
// punycode.encode
punycode.encode('mañana'); // 'maana-pta'
punycode.encode('☃-⌘'); // '--dqo34k'
// punycode.toASCII
punycode.toASCII('mañana.com'); // 'xn--maana-pta.com'
punycode.toASCII('☃-⌘.com'); // 'xn----dqo34k.com'
punycode.toASCII('example.com'); // 'example.com'
// punycode.toUnicode
punycode.toUnicode('xn--maana-pta.com'); // 'mañana.com'
punycode.toUnicode('xn----dqo34k.com'); // '☃-⌘.com'
punycode.toUnicode('example.com'); // 'example.com'
简单来说就是,Punycode 是一种编码方法,用于将 Unicode 字符串 (如国际化域名) 转换为 ASCII 字符串,以便兼容 DNS 系统。
DNS 系统最初设计时只支持 ASCII 字符 (A-Z, a-z, 0-9, 以及一些特殊符号
),但随着全球化的发展,很多国家的域名使用了非 ASCII 字符 (如中文、阿拉伯文等)。
为了兼容这些域名,Punycode 作为一种标准被提出。
Punycode 是一种专门的编码规则,它可以将非 ASCII 字符串转换为符合 ASCII 标准的字符串。
以国际化域名 (IDN) 为例:
– 中文域名 你好.com
会被转换为 xn--6qq79v.com
– xn--
是 Punycode 编码的前缀,表示后面的部分是编码的域名。
大概就是这么个意思,但是它在 Node.js
的 v7.0.0
版本就已经被标记为废弃了,现在如果要使用呢,需要安装第三方 punycode
包即可 npm install punycode
。
也就是因为这个原因,所以才会出现使用 cos-nodejs-sdk-v5
的时候,在命令行出现一个用着没问题,但是看着有问题的警告。
那么本次 v2.16.0
版本,最主要的就是修复这个问题,并把 Node.js
的最低要求版本升级到了 v9.0.0
。
从更新内容来看,本次更新是相对克制和稳定的,并没有进行破坏性变更,如果对控制台的警告也看不顺眼的朋友们,可以准备着手更新了。