2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

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

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

关注

评论

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

配电 低压电工经验总结(12)

万里无云万里天

工业 工厂运维

利用S4U2Self实现Active Directory横向渗透

qife122

Active Directory 横向渗透

java: 无法访问org.springframework.ldap.core.LdapTemplate

刘大猫

人工智能 数据挖掘 算法 数据分析 大模型

利用golang特性,设计一个QPS为500的服务器

Go 语言 限流器

使用Secure Enclave加密API增强移动应用安全

qife122

ios安全 身份验证

1989年的模糊测试技术如何在2018年仍发现Linux漏洞

qife122

漏洞挖掘 模糊测试

移动研发模式升级:从原生开发到全域跨端的技术突围

Byte_Me

小程序 App 移动开发 移动端 移动开发平台

黑龙江二级等保:助力区域网络安全水平整体提升

等保测评

中小企业为何必须实现全面网络可视化:技术架构与安全实践

qife122

网络可视化 自动化发现 SME网络安全

开发者说|EmbodiedGen:为具身智能打造可交互3D世界生成引擎

地平线开发者

自动驾驶 具身智能 地平线征程6

App 开发困局如何破?从成本高企到差异化突围的实战路径

Byte_Me

小程序 App APP开发

HITCON CTF 2018 - 单行PHP挑战:会话上传与流过滤器链的极致利用

qife122

CTF 会话劫持

基于YOLOv8的文档图像表格检测与识别系统设计与实现(源码打包)

申公豹

人工智能

综合安防 维护经验总结(3)

万里无云万里天

工厂运维 综合安防

十年大厂员工终明白:MySQL性能优化的尽头,是对B+树的极致理解

poemyang

B+树 PageCache I/O模型 B树 MySQL InnoDB

工业数字化 信息化经验总结(3)

万里无云万里天

数字化转型 信息化 工业 工厂运维

哈尔滨二级等保:为中小企业网络安全筑牢坚实防线

等保测评

可观测性体系建设五步心法:明业务、立规范、采数据、显特征、获洞见

巴辉特

可观测性 Observability

大数据-71 Kafka 从 sendfile 到 mmap:高性能背后的 I/O 技术全解析

武子康

Java 大数据 kafka 分布式 消息队列

Trail of Bits晋级AIxCC决赛:AI驱动的网络安全攻防实战

qife122

AI安全 自动化修复

告别 Count Distinct 慢查询:StarRocks 高效去重全攻略

StarRocks

大数据分析 StarRocks 物化视图 全局字典 高效去重

ReID/OSNet 算法模型量化转换实践

地平线开发者

自动驾驶 算法工具链 地平线征程6

微店商品详情API开发指南

tbapi

微店API 微店数据采集 微店商品详情API 微店详情API

工业数字化 信息化经验总结(2)

万里无云万里天

数字化转型 信息化 工业 工厂运维

KubeBlocks for MinIO 容器化之路

小猿姐

本地部署VS Code Server,如何用内网穿透实现无需公网IP远程访问?

贝锐

内网穿透 Server 端 Serverless VSCode WebIDE

vLLM V0架构和V1架构的解读

Jason黄

vLLM

检索增强生成(RAG)入门指南:构建知识库与LLM协同系统

qife122

人工智能 向量数据库

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