QCon北京|3天沉浸式学习,跳出信息茧房。 了解详情
写点什么

npm 5.0 普遍提升了性能

  • 2017-06-01
  • 本文字数:939 字

    阅读完需:约 3 分钟

npm 公司发布了其软件包管理工具 npm 5.0 版,这为公司多年的规划和累月的编码工作划上了一个句号。npm 5 提升了性能,使其保持了对同类软件的竞争力。

Npm 公司通过博客帖子宣布新的软件包管理工具发布,并称npm 5 是“一次相当大的进步,显著地改进了几乎所有常见情况下的性能”。该发布并非仅是给出了新的主版本号,而主要是提供了一些新的特性和突破性改进。

据博客帖子介绍,npm 5 中的一个重大改进是针对缓存的性能和行为,例如对离线行为的改进。现在npm 会在机器离线时使用本地缓存,而不是去反复地尝试访问网络。开发人员可以通过设置 --prefer-offline--prefer-online等选项定制缓存的使用方式。

但是这一重大改进将会导致全部已有的缓存失效,开发人员需要重新下载软件包。因此应确保在升级 npm 时具有高速的网络连接。

npm 5 还提供了其它的一些新特性,其中最显著的改进是--save成为了默认行为。以前,要将完成安装的软件包保存在 package.json 文件中,开发人员需要发布命令:

npm install --save虽然开发人员肯定有意向去执行软件包的保存行为,但是实际在命令执行时还是需要做双向确认(Opt-in)。在 npm 5 中,即使不明确指定该标识,软件包也会保存到 package.json 中。但麻烦的一面是,如果开发人员不想保存该软件包,需要在命令中明确指定--no-save标识。

在社区中,部分开发人员倾向于使用 Yarn 软件包管理工具,它是另一个很有前途的竞争者。Yarn 的存在将促使 npm 更加努力,激发 npm 在性能上的改进。HackerNews 用户 chrisweekly 写道:“感谢 Yarn,帮助社区看到了真相(译者注:原文为“皇帝的新装”)。回想起来,很明显默认确定性构建的确是核心需求”。

npm 公司 CEO Isaac Schlueter指出,对 npm 5 的改进已经进行了很长的时间,并非是针对 Yarn:

可以说,npm 5 中的所有改进早在多年前就已做出了规划。鉴于已有大量用户依赖于 npm 工具,我们必须慎重对待重大更改。社区在 Yarn 的使用上给出了一个强烈信号,虽然这表明我们正走在正确的道路上,但从外部看上去,这一事件却仿佛是 npm 改进的“催化剂”。

无论改进是社区推动或是公司先行考虑到的,开发人员终将从中受益,能用上更快更好的工具。 GitHub 上提供了完整的 npm 5 发行说明。

查看英文原文: Npm 5.0 Boosts Common Sense Performance

2017-06-01 18:263211
用户头像

发布了 227 篇内容, 共 76.8 次阅读, 收获喜欢 28 次。

关注

评论

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

mmkv跨进程,面试字节跳动Android研发岗,灵魂拷问

欢喜学安卓

android 程序员 面试 移动开发

边缘计算加持下的智慧社区

边缘计算

量化策略系统搭建,马丁策略交易

40个问题让你快速掌握Java多线程的精髓

华为云开发者联盟

Java 多线程 synchronized Thread Semaphore

B站HR炫耀资产、贬低面试者?无独有偶,校招污点事件记录帮你避雷

北游学Java

Java 面试

编程实战:如何管理代码里的常量

华为云开发者联盟

常量 代码 web开发 final常量类 复用常量

手把手教你写一个经典躲避游戏

HZFEStudio

大前端 游戏 canvas

LeetCode题解:73. 矩阵置零,栈,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

使用 rocketmq-spring-boot-starter 来配置、发送和消费 RocketMQ 消息

阿里巴巴云原生

容器 开发者 云原生 中间件 API

Pytorch数据加载

Sakura

4月日更

马斯克的狗狗币实验

猫Buboo

面对大规模 K8s 集群,如何先于用户发现问题?

阿里巴巴云原生

容器 云原生 k8s 监控 调度

NumPy之:标量scalars

程序那些事

Python 数据分析 Numpy 程序那些事 scalar

新思科技发布《疫情中的安全隐患:移动应用程序安全现状》报告

InfoQ_434670063458

App 新思科技 移动应用程序安全

游戏测试-战斗内核的自动化测试

行者AI

人工智能

扩展 GRTN:云原生趋势下的 RTC 架构演进

阿里云CloudImagine

阿里云 云原生 RTC SRS流媒体服务器

RocketMQ NameServer工作原理与源码解析

HByte

RocketMQ

Coinbase上市意味着什么?

猫Buboo

区块链电子签章应用平台--助推企业数字化转型升级

13530558032

图算法系列之深度优先搜索(一)

Silently9527

Java 深度优先搜索 图算法

PassJava 初始化项目和添加微服务

悟空聊架构

闲来无事,写脚本,install_wordpress

ilinux

用C++ 和OpenCV 实现视频目标检测(YOLOv4模型)

博文视点Broadview

源中瑞智慧党建系统,打造党建管理系模式

13530558032

合约交易所跟单,合约跟单社区开发

如何推进一个“以行动为导向的”事件驱动架构?

VoltDB

数据库 数据分析 实时数据分析 事件驱动架构

区块链食品溯源--为食品溯源认证

13530558032

ndk开发环境,个人开发者做一款App需要知道的事情,绝对干货

欢喜学安卓

android 程序员 面试 移动开发

架构实战营 - 架构设计文档模板

华仔

架构设计 文档模板

浅谈BSS3.0产品“守成”之策下 • 运维提升篇

鲸品堂

软件 运维 提升

亲爱的开发者,您收到一个启动智能世界的魔方

白洞计划

npm 5.0普遍提升了性能_JavaScript_David Iffland_InfoQ精选文章