写点什么

NPM 3 Beta 为 Windows 用户带来利好消息

  • 2015-07-05
  • 本文字数:1194 字

    阅读完需:约 4 分钟

近日,npm 3.0 Beta 版发布了,该版本几乎完全重写了安装器,为在 Windows 上使用 Node.js 的用户带来了利好消息。

Rebecca Turner 在发布声明中说到,npm 团队“很高兴且自豪地”发布了3.0 Beta 版,并且“希望能与npm 用户社区合作以便尽快发布生产版本”。

Turner 是 CLI 程序员,负责几乎所有的变更,她说此次更新花费了大约 8 个月的时间。

npm 最重要的变更之一就是依赖的更新。借助于水平依赖可以解决太多依赖导致 Windows 文件系统崩溃的问题,因为过深的路径会造成 Explorer 和其他标准工具无法处理的难题。

Turner 说到:

现在,依赖将会尽可能按照水平方式进行安装,所有依赖,以及依赖的依赖都会安装到项目的 node_modules 目录中,并且不再嵌套。如果两个或多个模块的依赖存在冲突,那么模块之间才会出现嵌套的情况。

此次更新还意味着安装“从一开始”就是去重的,Git deps 是去重的,甚至命令也是“去重”的。

Turner 向 InfoQ 表示,作为一个用户,她觉得最激动人心之处就是自动去重的 deps,这会“极大降低安装包的大小”。

其他命令的行为也会受到依赖更新的影响。在此次更新中,当使用npm uninstall命令进行模块卸载时,系统会删除该模块中不被其他模块需要的所有依赖,而过去则是删除安装在该模块下的依赖。值得注意的是,npm 自身的依赖也是“水平、去重,且打包的”,因此 npm 3.0 无法由 npm 2.0 发布或打包。

安装器的其他一些变化还有改进了 npm 对于包的执行步骤。在之前的版本中,安装器在决定处理包时会立刻执行各项步骤。在 3.0 中,安装器会同时对所有包执行各项步骤,在继续之前会等待每一个阶段的完成。对于开发者来说,这么做可以消除很多竞态条件:让代码的编写变得更加轻松。

从实际使用的角度来看,Turner 说此次更新意味着诸如生命周期脚本等将会变得更加可预测且出错的可能性更低,同时也能更加轻松地实现诸如新的--dry-run标志等特性。Turner 说这会让开发者在执行之前就能看到将要发生的事情,同时详尽的日志会展示出安装器在进行改变前后的完整树形结构。

总而言之,Turner 希望 npm 3.0 Beta 版能够减少 Bug 的出现,并且为开发者提供一个更加稳定的平台。

不出所料的是,npm 3.0 Beta 版将会持续一段时间,直到团队“认为它已足够稳定,并且评估过它对社区造成的影响”之后才会发布正式版。Turner 还指出,由于此次几乎是完全重写,因此还会存在一些 Bug,该 Beta 版只能用于“每天使用的非关键的 CI 环境”,不能用于“产品维护或是持续部署”。

对于想要为 npm 贡献力量的 InfoQ 读者来说,方式有很多:常规的 pull requests、Bug 报告、文档与代码变更的特性请求等,这些都是 npm 所欢迎的,可以在其问题追踪器上进行。除了直接的贡献之外,npm 团队也非常欢迎大家编写教程与文章,形式诸如“如何解决某个问题以及使用了哪些模块”,优秀的内容会被 npm Weekly 所引用。

查看英文原文: NPM 3 Beta Brings Good News for Windows Users

2015-07-05 03:192001
用户头像

发布了 88 篇内容, 共 269.8 次阅读, 收获喜欢 9 次。

关注

评论

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

毕业总结

流火

透过华为军团看科技之变(六):智慧公路

脑极体

毕业季 | 华为专家亲授面试秘诀:如何拿到大厂高薪offer?

华为云开发者联盟

面试 工作 offer 大厂 毕业

BlocProvider 为什么感觉和 Provider 很相似?

岛上码农

flutter ios 安卓 移动端开发 7月月更

AirServer2022最新版功能介绍及下载

茶色酒

AirServer AirServer2022

若干互联网暴露面的收敛及处置建议

穿过生命散发芬芳

7月月更 互联网暴露

JavaScript 设计模式之代理模式

devpoint

JavaScript 设计模式 代理模式 7月月更

九章云极DataCanvas公司蝉联中国机器学习平台市场TOP 3

九章云极DataCanvas

极简,利用Docker仅两行命令就能下载和编译OpenJDK11

程序员欣宸

Java Openjdk 7月月更

实例讲解将Graph Explorer搬上JupyterLab

华为云开发者联盟

人工智能 GES

微服务服务稳定性治理

阿泽🧸

微服务治理 7月月更

混沌工程平台 ChaosBlade-Box 新版重磅发布

阿里巴巴云原生

阿里云 分布式 云原生 混沌工程

架构师毕业总结

凯博无线

4. 对象映射 - Mapping.Mapstercover

MASA技术团队

C# .net 微软 框架 Framework

Windows11 ARM版本安装Python环境

IT蜗壳-Tango

IT蜗壳教学 7月月更

华为云专家详解GaussDB(for MySQL)新特性

华为云开发者联盟

数据库 云计算 后端 算子

【直播回顾】战码先锋首期8节直播完美落幕,下期敬请期待!

OpenHarmony开发者

Open Harmony

认识线程

zarmnosaj

7月月更

BOOTSTRAP

Jason199

bootstrap 7月月更

K临近算法介绍

乌龟哥哥

7月月更

一个实习生的CnosDB之旅

CnosDB

IoT 时序数据库 开源社区 CnosDB infra

RPA进阶(二)Uipath应用实践

No Silver Bullet

RPA 7月月更 Uipath

linux下清理系统缓存并释放内存

入门小站

Linux

精耕渠道共谋发展 福昕携手伟仕佳杰开展新产品培训大会

联营汇聚

创业团队如何落地敏捷测试,提升质量效能?丨声网开发者创业讲堂 Vol.03

声网

创业讲堂 生态专栏

如何使用物联网低代码平台进行个人设置?

AIRIOT

低代码 物联网 低代码,项目开发

vue-axios(三)

小恺

7月月更

宝,运维100+服务器很头疼怎么办?用行云管家!

行云管家

云计算 运维 服务器 云管

使用环信提供的uni-app Demo,快速实现一对一单聊

环信

即时通讯 uni-app集成 环信im

纪念成为首个DAYU200三方demo贡献者

坚果

HarmonyOS OpenHarmony OpenHarmony应用开发 7月月更 harmony

网络编程常用的几种字符编码

HoneyMoose

NPM 3 Beta为Windows用户带来利好消息_JavaScript_James Chesters_InfoQ精选文章