写点什么

Visual Studio 中断 NPM 套件库服务

  • 2016-11-14
  • 本文字数:1087 字

    阅读完需:约 4 分钟

微软在 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 )关注我们。

2016-11-14 18:001679
用户头像

发布了 22 篇内容, 共 53377 次阅读, 收获喜欢 3 次。

关注

评论

发布
暂无评论
发现更多内容

户外LED显示屏如何设计散热?

Dylan

设计 环境 LED显示屏 户外LED显示屏 led显示屏厂家

vivo 场景下的 H5无障碍适配实践

vivo互联网技术

前端 H5 移动端适配 无障碍适配 体验提升

聚焦Web前端安全:最新揭秘漏洞防御方法 | 京东云技术团队

京东科技开发者

WEB安全 漏洞 前端安全 企业号 8 月 PK 榜 XXS

火山引擎DataTester:AB实验平台未来演进趋势是怎样的?

字节跳动数据平台

大数据 AB实验 对比试验 企业号 8 月 PK 榜 数字化增长

面试官:说说Spring中@NotEmpty、@NotBlank、@NotNull 的区别和使用

java易二三

程序员 架构 计算机

鲲鹏助力清华大学夺取SolverChallenge2023竞赛冠军

彭飞

2023 Gartner RPA魔力象限报告解读:国产厂商“破纪录”跃升意味着什么?

王吉伟频道

RPA Gartner RPA魔力象限 超自动化 AI大语言模型

一篇让小孩都看的懂的ChatGPT原理解析

小宝

大模型 ChatGPT

从零开始,快速掌握VPS服务器的使用技巧与窍门!

一只扑棱蛾子

VPS VPS服务器

Vulkan-性能及精细化

江湖修行

android OpenGL ES opengl 渲染 vulkan

汽车及汽车零部件行业云MES解决方案

万界星空科技

解决方案 MES系统 汽车

springboot+activiti+vue+mysql轻松搞定审批!(源码)

金陵老街

在2023年及以后可以改善企业业务的五种软件

高端章鱼哥

项目管理 软件开发 业务管理

cilium 原理之sock_connect

沃趣科技

数据库 云计算 ebpf cilium 沃趣科技

精准测试探索 | 京东云技术团队

京东科技开发者

测试 精准测试 代码覆盖率 企业号 8 月 PK 榜 静态链路

SpringBoot3文件管理

Java 架构 springboot SpringBoot3

13. Python的文件操作

茶桁

Python 文件操作

火山引擎VeDI助力零售品牌私域运营 实现与会员高效“沟通”

字节跳动数据平台

大数据 云服务 数据平台 火山引擎 企业号 8 月 PK 榜

柏睿数据再度入选Gartner《中国数据库管理系统市场指南》代表厂商

新消费日报

实践指南-前端性能提升 270% | 京东云技术团队

京东科技开发者

性能优化 前端 企业号 8 月 PK 榜

山东布谷科技直播软件源码探索高效、稳定直播传输的技术介绍:流媒体传输技术

山东布谷科技

软件开发 直播 源码搭建 直播软件源码 流媒体技术

向量检索在大模型应用场景的技术和实践

百度Geek说

人工智能 百度 企业号 8 月 PK 榜

产品管理经验分享:删掉 500 个产品待办事项后,我逃离了「假敏捷」

LigaAI

产品经理 敏捷开发 需求管理 产品管理 企业号 8 月 PK 榜

银河麒麟高级操作系统V10助力联通云建设打出组合拳

openEuler

Linux 云原生 操作系统 中间件 openEuler

MySQL教学,是不是干货你说的算

java易二三

MySQL 数据库 程序员 计算机 电脑

Programming abstractions in C阅读笔记:p88-p90

codists

[国产化-银河麒麟v10桌面版]FTP适配(FtpClient)

alexgaoyh

Java web 麒麟操作系统 ftp服务 FtpClient commons.net

用户空间协议栈设计和netmap综合指南

华为云开发者联盟

后端 开发 华为云 华为云开发者联盟 企业号 8 月 PK 榜

亚马逊云科技助力涂鸦智能出海,家庭能源管理系统(HEMS)将成智能家居新沃土

Lily

go-zero 是如何实现计数器限流的?

AlwaysBeta

Go 微服务 限流算法 go-zero 限流器

Visual Studio中断NPM套件库服务_.NET_James Chesters_InfoQ精选文章