在 2025 收官前,看清 Data + AI 的真实走向,点击查看 BUILD 大会精华版 了解详情
写点什么

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

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

关注

评论

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

架构训练营作业1

Richard

架构实战营

第一次作业

Mr小公熊

为什么 Cpython 是 C 写的,而不是 Python

宇宙之一粟

Python 1月月更

云厂商第一家,腾讯安全获国家级信息安全服务资质“双认证”!

腾讯安全云鼎实验室

云安全 安全服务

企业管理中用户数据同步机制解决思路

全象云低代码

低代码 数据同步 用户数据 后端技术

微信业务架构图 & 学生管理系统设计

tom

3DCAT首届行业生态交流会|瑞云科技技术总监赵志杰:实时渲染助力元宇宙应用触手可及

3DCAT实时渲染

云计算 公有云 云渲染 元宇宙

如何知道自己是否适合做产品经理?

石云升

产品经理 1月月更

☕【Java深层系列】「并发编程系列」深入分析和研究MappedByteBuffer的实现原理和开发指南

码界西柚

Java 文件I/O MappedByteBuffer FileChannel 1月日更

从 Gitee 到极狐GitLab 的迁移指南

极狐GitLab

迁移 gitee 极狐GitLab

微信的业务架构&学生管理系统架构设计

随欣所遇

架构实战营

TCP长连接实践与挑战

字节跳动终端技术

字节跳动 TCP 后端 HTTP 连接池

架构实战营模块一作业

刘璐

实现一个任务调度系统,看这篇文章就够了

勇哥java实战分享

Elastic-job XXL-JOB 任务调度 自主研发

微信架构简析和学生系统初步方案

Bear

「架构实战营」

Hive SQL语句的正确执行顺序

五分钟学大数据

1月月更

模板

Anthony

架构实战营-模块一作业

炎彬

「架构实战营」

做了这么多年架构师,我终于理解了什么是架构设计

博文视点Broadview

领域划分的规则是什么

神帅

DDD 领域划分规则

三峡集团研究院:基于物联网的大规模储能系统能量管理和智能运维平台数据接入方案

EMQ映云科技

物联网 mqtt 碳中和 边云协同 新能源

百度AICA再添57位“首席AI架构师”,人工智能与产业场景结合愈发深入

百度大脑

学生管理系统架构设计方案

Geek_36cc7c

天津银行周传凯:从 0 到 1,我的分布式数据库落地经验谈

OceanBase 数据库

分布式 OceanBase 开源 OceanBase 社区版 客户实践

架构设计小试牛刀

Fingal

架构实战营

凡泰极客荣获2021 InfoQ“最佳技术产品营销奖”

FinClip

InfoQ

Hive底层数据存储格式详解

五分钟学大数据

hive 1月月更

DDD独立类模式你用到了吗

神帅

DDD 独立类模式

Apache APISIX 2.12.0 版本发布,新功能更适配新一年!

API7.ai 技术团队

开源 后端

微信业务架构图

Geek_36cc7c

投票开始 | 和你一起见证龙蜥社区年度优秀开发者的诞生

OpenAnolis小助手

开源 开发者 活动 社群 比赛

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