写点什么

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

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

关注

评论

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

AI 生成的代码能用吗?亲测比手写更规范!

飞算JavaAI开发助手

低代码是成本 “屠夫”?用过发现果然名不虚传

秃头小帅oi

DeepSeek:原理揭秘与水平评估。看DeepSeek如何回答?

天津汇柏科技有限公司

AI DeepSeek

一文解读MySQL Query Cache使用与实现

华为云开发者联盟

数据库 查询缓存 #Mysql TaurusDB

国产数据库高光时刻!天翼云TeleDB荣登TPC-DS全球测评总榜第二

极客天地

IDS 和 IPS 日志监控的重要性

运维有小邓

ips IDS 日志审计系统 日志管理系统

【硬核测评】AI 代码生成工具准确率提升不止于 30%!

飞算JavaAI开发助手

AI 编程工具哪家强?5 款主流 AI 代码生成工具横向测评

飞算JavaAI开发助手

企业级低代码架构演进:数字化管理系统中的多环境部署与合规性保障实践

不在线第一只蜗牛

低代码

字符编码:从基础到乱码解决

不在线第一只蜗牛

qt 字符

5个小妙招,通义灵码“一键治愈”你的代码问题

阿里云云效

阿里云 云原生 通义灵码

可观测性探索系列一:如何赋能运维数据治理

日志易

运维 可观测性平台

数字先锋 | AI+政务,轻松跨语种!霍尔果斯政务服务升级蜕变

天翼云开发者社区

政务 智能化转型 DeepSeek

打工人速看! "反卷神器"的飞算JavaAI,月均加班减少30小时

飞算JavaAI开发助手

AI焦虑之前,先看看你的底层数据准备好了没

赛博威科技

数字营销 赛博威 MDM主数据

Spring Boot + CRaC 启动速度提升了10倍!

Geek_e3e86e

Java 编程

5个小妙招,通义灵码“一键治愈”你的代码问题

阿里巴巴云原生

阿里云 云原生 通义灵码 AI程序员

TiDB 观测性解读(一)丨索引观测:快速识别无用索引与低效索引

PingCAP

TiDB 索引优化 数据库·

国产数据库高光时刻!天翼云TeleDB荣登TPC-DS全球测评总榜第二

天翼云开发者社区

数据库 云计算

解放军总医院医学创新研究部刘晓莉实录分享(上):多模态生物医学数据利用

ModelWhale

人工智能 大数据 医疗

解放军总医院医学创新研究部刘晓莉分享实录(下):常见开源生物医学数据集简介

ModelWhale

人工智能 大数据 医疗 人工智能大数据 医工融合

和鲸走入同济大学校园,从 GPT 到 DeepSeek,共启 AI 通识课新篇章

ModelWhale

人工智能 大数据 DeepSeek v3

得物 Android Crash 治理实践

得物技术

android 后端

【避坑指南】Java开发中10大高频错误,AI工具如何提前预警?

飞算JavaAI开发助手

云当先,圳有为,华为云携手深圳企业加速开发AI生产力

极客天地

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