写点什么

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

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

关注

评论

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

播放器音频后处理实践(一)

百度Geek说

Altair HyperWorks仿真案例:通过设计优化最大化发挥增材制造的潜力

智造软件

仿真 Hypermesh hyperworks

局部注意力机制提升Transformer长序列时间预测

qife122

机器学习 Transformer

重大技术转向:LinkedIn 抛弃自家创造的 Kafka ,又重新造了个 Pulsar 的轮子?

AscentStream

kafka pulsar linkedin

CST怎样安装补丁?CST Studio Suite 2022 SP2补丁包

思茂信息

电磁仿真 CST软件 CST Studio Suite

TRAE cue 体验提升之 Latency 篇

北京中暄互动广告传媒有限公司

私有化即时通讯有什么优势,推荐BeeWorks聊天工具

BeeWorks

即时通讯 IM 私有化部署

三级等保在哈尔滨智慧城市建设中的战略价值

等保测评

2025年最佳加密软件精选

qife122

数据保护 加密技术

BeeWorks私有化即时通讯,局域网办公安全可控

BeeWorks

即时通讯 IM 私有化部署

KWDB 一库多用:当多模遇上分布式

KaiwuDB

合合信息AI 鉴伪检测技术,揪出 “难察觉” 的虚假源头

袁袁袁袁满

人工智能、

缓存之美:从根上理解 ConcurrentHashMap

京东科技开发者

工厂工地如何利用MyEMS实现安全绿色生成,助力企业节能减排,降本增效

开源能源管理系统

开源 能源管理系统

小白也可以只用 2 轮 prompt 生成你的“哈利波特测试器”

北京中暄互动广告传媒有限公司

苹果电脑怎么在虚拟机里安装office办公软件?Mac怎么运行Windows版的office365?

凡凡不烦

Office Parallels Desktop下载 虚拟机软件 Mac效率办公软件 如何在Mac运行win

IDE 革命:超越自动完成

俞凡

人工智能

HarmonyOS 5 应用拉起系列(二):如何拉起微信小程序

鸿蒙魔法师

微信 HarmonyOS

ONES 携手东风集团,共建自主可控整车级 ALM 研发管理平台​

万事ONES

ALM 项目研发管理软件 ONES研发管理 东风汽车集团

本地缓存 Caffeine 中的时间轮(TimeWheel)是什么?

京东科技开发者

如何通过Python SDK新建一个DashVector Client

DashVector

人工智能 大数据 AI 数据库 大数据

缓存之美:万文详解 Caffeine 实现原理(上)

京东科技开发者

可视化抽取指南:用图形语言解码视频抽取

数由科技

人工智能 低代码 数据科学 视频处理 语音处理

3节点集群带宽突破513GB/s,焱融存储再度登顶MLPerf Storage全球榜单

焱融科技

人工智能 全闪存储 AI存储 MLPerf 焱融存储

Coze Studio开源,企业用户多了一种选择,也需多几分考量

Fabarta

人工智能 开源

YashanDB SYSTIMESTAMP函数

YashanDB

数据库 大数据

Coze开源了!意味着什么?

禅道项目管理

#开源 #人工智能 AI智能体 Coze开源 #字节跳动

区块链Web3项目开发的进度管理

北京木奇移动技术有限公司

区块链开发 软件外包公司 web3开发

如何实现专业技术教学与思政教育的有机融合|北京理工大学医工交叉教学实践分享(4)

ModelWhale

AI教育 医工融合 北京理工大学

Chain-of-Draft:新一代提示技术之王

俞凡

人工智能 提示工程

高斯混合层次模型实现降维与聚类统一

qife122

机器学习 聚类算法

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