10 月 23 - 25 日,QCon 上海站即将召开,现在购票,享9折优惠 了解详情
写点什么

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:001954
用户头像

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

关注

评论

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

逐鹿AI+、论道沪上,华为云企业快成长AI+大数据技术创新论坛在上海举行

说山水

深入学习 Linux 操作系统的存储 IO 堆栈

KaiwuDB

KaiwuDB Linux存储 IO堆栈

字节算法中了80%!靠着这份GitHub上的算法小抄,成功斩获Offer

互联网架构师小马

Java 数据结构 算法 LeetCode

瓴羊Quick BI:数据大屏的智能解决方案

流量猫猫头

为世界第一大癌症高效研发首创新药,AI大模型助力药物研发叩开未来之门

飞桨PaddlePaddle

人工智能 paddle 飞桨

2023 可信数据库发展大会:近百位行业大咖将出席演讲

KaiwuDB

KaiwuDB TDBC 2023可信数据库发展大会

Wallys DR9074 4x4 Wlan module work on X86 device/DR9074 应用在X86。

Cindy-wallys

QCN9074 QCN9024

瓴羊Quick BI:商业智能工具的新标杆

巷子

GitHub标星159K的Java学习手册,太香了!

互联网架构师小马

Java

Dubbo框架适配模块及实现原理

互联网架构师小马

注解切面适配模块及实现原理

互联网架构师小马

Bettertouchtool for Mac:触控板增强工具

背包客

macos Mac 软件 BetterTouchTool教程 Mac触控板增强 Bettertouchtool

GitHub热榜,亿级流量并发手册彻底揭开阿里高流量的秘密

互联网架构师小马

深度学习应用篇-推荐系统[12]:经典模型-DeepFM模型、DSSM模型召回排序策略以及和其他模型对比

汀丶人工智能

人工智能 深度学习 推荐系统 搜索算法 6 月 优质更文活动

DR6018 Routerboard: Unleashing Long-Distance Transfer Capabilities up 23Km!

Cindy-wallys

IPQ6010 ipq6018

Dubbo负载均衡策略之 一致性哈希 | 京东云技术团队

京东科技开发者

dubbo 哈希算法 数据倾斜 企业号 6 月 PK 榜

啥?PCB拼版对SMT组装有影响!

华秋PCB

PCB SMT PCB设计 PCB拼版 贴片

插件化工程R文件瘦身技术方案 | 京东云技术团队

京东科技开发者

企业号 6 月 PK 榜 R文件 文件瘦身 插件化工程

Spring Boot+Vite+Vue3二手商城

路北路陈

6 月 优质更文活动

AI 大战高考作文!实测 ChatGPT、文心一言、通义千问等 8 款“神器”

博文视点Broadview

微服务高并发:动态配置的实现原理搞懂了

互联网架构师小马

豫园股份×奇点云:集团统一战略的数据平台这样炼成

科技热闻

TiDB x Catalyst丨秒级洞悉数据价值,TiDB 帮助“客户成功 SaaS 厂商”提升用户体验

PingCAP

数据库 分布式 TiDB

数据库的 Schema 变更实现

KaiwuDB

KaiwuDB Schema 锁表

Junit执行器Runner探索之旅 | 京东云技术团队

京东科技开发者

单元测试 JUnit runner 源码解读 企业号 6 月 PK 榜

一次性吃透基于Spring Cloud动态配置实现动态数据源

互联网架构师小马

百度沈抖:大模型 产业智能化时代的新引擎

飞桨PaddlePaddle

百度 算法

软件测试 | Selenium-Grid架构

测吧(北京)科技有限公司

测试

领域建模之数据模型设计方法论 | 京东云技术团队

京东科技开发者

数据模型 建模 业务模型 企业号 6 月 PK 榜

SpringMVC框架适配模块及实现原理

互联网架构师小马

OpenFeign框架适配模块及实现原理

互联网架构师小马

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