QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

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

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

关注

评论

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

GitHub标星235k!这份阿里P9纯手写的Java并发核心手册堪称无敌了

Java架构之路

Java 程序员 架构 面试 编程语言

【干货分享】开放原子超级链动态内核XuperCore核心技术揭秘

百度开发者中心

区块链 超级链

520 属于程序员的诗

荩沫

520单身福利

如何制定战略?

石云升

创业 战略 职场经验 5月日更

官方出手,一针见血!Spring Boot官方手册来袭:从入门到实战

Java架构之路

Java 程序员 架构 面试 编程语言

GraalVM系列(三):GraalJS多线程实践

孤岛旭日

GraalVM

中台反思:提质增效

孤岛旭日

效率 中台 企业中台

IDEA 这么设置 Maven,再也不用担心依赖下载失败了

楼下小黑哥

Java IDEA

生态“群海”:数字化转型的供需之变

脑极体

5分钟速读之Rust权威指南(五)

wzx

rust

GraalVM系列(二):GraalVM核心特性实践

孤岛旭日

GraalVM

分库分表 springboot+dubbo+mybatisPlus+shardingSphere

try catch

dubbo 分库分表 springboot ShardingSphere MyBatisPlus

大话Java异常

若尘

Java 异常 异常处理 520单身福利

毫秒级的竞技PK | 电信行业需要的5G速度

VoltDB

大数据 数据分析 5G 实时计算

2021金三银四Java岗大厂面试经验总结(附面试真题)

北游学Java

Java 面试

闲言碎语:为什么阿里做不好业务中台

孤岛旭日

包容的回答者

王辉

个人成长 沟通 团队文化 批判性思维 正念

致我的青春我的感情故事

Changing Lin

520单身福利

浪潮“分布式云+”行动计划持续深化 三大产品正式发布

云计算

浅谈前端异常监控平台实现方案

devpoint

异常处理 indexedDB leveldb

分布式架构的根基:深入浅出一致性算法

孤岛旭日

分布式 一致性算法 PAXOS 共识算法

CompusBulider (模模搭)学习笔记7:3D场景中第一人称行走

ThingJS数字孪生引擎

3D可视化 数字孪生

淘宝网能抗住“千亿级”并发量的奥秘是什么?

Java架构师迁哥

平台化服务的基石(四):再议用户权限,更优雅的模型

孤岛旭日

用户权限 企业建模

作业二:分析微信朋友圈高性能复杂度

刘丽

架构训练营

【签约计划】试用期名单公布

InfoQ写作社区官方

签约计划 热门活动

中台反思:技术中台的未来

孤岛旭日

中台 低代码 中台架构

采用DevOps的7个主要障碍,你一定不知道!

禅道项目管理

DevOps

高可用 Keycloak,K8s

Zhang

MySQL k8s keycloak

实现私域流量的长效积累,一场医美直播背后的数字营销密码

脑极体

中台反思:技术中台设计架构

孤岛旭日

中台 企业中台 技术中台

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