BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Visual Studio中断NPM套件库服务

| 作者 James Chesters 关注 1 他的粉丝 ,译者 Alina 关注 0 他的粉丝 发布于 2016年11月15日. 估计阅读时间: 3 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

微软在VS代码1.7版本中断了npm套件库的服务之后,推出了VS代码1.7.1版本。

VS代码1.7版本提供的自动类型获取(ATA)功能,旨在监视开发人员的package.json文件,并自动将所有依赖项(dependencies)的类型声明文件(type declaration files)安装在文件系统上的缓存中。这不同于以前依靠开发人员手动安装类型声明文件来为package.json中的依赖项提供IntelliSense。

以下摘录于项目经理Wade Anderson的微软1.7回滚事件报告,事件发生在他们团队在V1.7版本中将ATA功能推向市场之后:

11月2日〜4:12 pm PST npm与我们联系, 告知他们监测到巨大的套件库活动峰值,这些活动来自于试图在@types范围内访问不存在的包(package)的客户端。峰值时,这些请求占所有流量的大约10%(有趣的是,VS代码用户发送请求的数量大约与npm监测到的印度的请求数量相同),并短暂地妨碍了他们的服务。

npm dev ops迅速采取行动,以减轻无意的DDoS攻击,并判断该事件来源于VS代码 1.7版本。关键原因是大量对不存在的包(package)的请求。

Anderson解释说,TypeScript语言服务器会先检查package.json中所列出的模块是否已在应用缓存中,然后再为那些不在缓存中的模块向npm 发送请求:请求@ types/{module},添加任何尚未存在的模块。

“每次打开一个项目或文件,会为不存在的模块发出请求,并预期着将新的类型声明文件添加到@types范围。这导致了npm响应404错误信息。鉴于不在@types范围内的模块数量很大,大量的404会短暂影响npm的可用性”,Anderson说。

除了应对ATA的无意DDoS攻击之外,1.7版本还实现了许多重要更新,包括在HTML中CSS的自动补全。现在开发人员可以看到CSS语言特性了,它用于嵌入到HTML中的CSS样式的自动补全、验证和着色注释,如下图所示。

根据微软的博客文章,该版本还包含“多目标调试”的初期实现。这功能允许在VS代码的单个实例中同时活跃着多个调试进程。该更新使开发人员可以同时调试扩展及其调试适配器和/或语言服务器,同时还可以在单个项目文件夹中调试客户端和服务器,以及调试集群程序。

1.7版本还提供了Node.js调试,把那些必要但极少改变的属性设置成灰色,删除不太常用的属性,并把重写和改进的文档以及注释链接到在线文档。

Anderson说VS代码团队将与Typescript团队合作,为ATA寻找一个“令人满意的修复”。

查看英文原文VS Code Breaks NPM registry


感谢冬雨对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

我是来吐槽这个翻译的。 by 孙 长宇

VS Code -> Visual Studio Code
这个不能直译,非要直译的话为什么不叫“视觉工作室代码”?

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

1 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT