QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

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

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

关注

评论

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

【愚公系列】2022年11月 微信小程序-日期时间组件封装

愚公搬代码

11月月更

更轻量的百度百舸,CCE Stack 智算版发布

Baidu AICLOUD

AI工程化 高性能计算 异构计算 百度百舸

武汉web前端培训学习前景如何

小谷哥

固定QPS异步任务功能再探

FunTester

在web前端学习中如何学习知识点

小谷哥

JavaScript, ABAP 和 Scala 里的尾递归(Tail Recursion)

汪子熙

JavaScript 编程语言 尾递归 abap 11月月更

CnosDB 2.0 产品发布会预告:一切为了万物智联,用 Rust 打造云原生时序数据库

CnosDB

时序数据库 开源社区 CnosDB CnosDB 2.0发布会

解密GaussDB(for Influx) :让智能电网中时序数据处理更高效

华为云开发者联盟

数据库 华为云 企业号十月 PK 榜

工作多年,技术认知不足,个人成长慢,职业发展迷茫,该怎么办?

测试人

软件测试 自动化测试 测试开发

网站停服、秒杀大促…解析高可用网站架构云化

华为云开发者联盟

云计算 后端 华为云 企业号十月 PK 榜

CSS写一个圣诞树Chrome浏览器小插件

肥晨

11月月更 css写圣诞树 Chrome插件

4步消除漏洞积压

SEAL安全

漏洞修复 软件供应链安全 漏洞管理 11月月更

从 0 开始学 Python 自动化测试开发(二):环境搭建

霍格沃兹测试开发学社

如何通过机器学习赋能智能研发协作?

LigaAI

人工智能 智能化 LigaAI 研发协作平台 亚马逊云科技

大专学历通过大数据培训好找工作吗?

小谷哥

修改ElementUI样式

源字节1号

软件开发 前端开发 后端开发 小程序开发

自学前端达到什么水平才能找到工作,来看这套前端学习路线图

千锋IT教育

基于OpenHarmony L2设备,如何用IoTDeviceSDKTiny对接华为云

华为云开发者联盟

云计算 华为云 企业号十月 PK 榜

【LeetCode】二叉树最大宽度Java题解

Albert

算法 LeetCode 11月月更

校招面试真题 | 测试流程大概是什么?

霍格沃兹测试开发学社

Java应用在docker环境配置容器健康检查

程序员欣宸

Java Docker 11月月更

新能源锂电池极片制造设备如何实现故障智能诊断?

PreMaint

智能诊断 故障诊断 新能源 设备健康管理

COSCon'22 第七届中国开源年会圆满落幕

腾源会

开源

佛萨奇1.0 2.0矩阵公排项目系统开发详情

开发微hkkf5566

京东云开发者|经典同态加密算法Paillier解读 - 原理、实现和应用

京东科技开发者

联邦学习 同态加密 隐私计算 加密算法 多方安全计算

【JVM】关于JVM,你需要掌握这些 | 一文彻底吃透JVM系列

冰河

Java 性能优化 JVM Java虚拟机 系统编程

ironSource 与 Sensor Tower 宣布达成战略合作,共同拓展应用市场增长潜力

极客天地

技术分享 | 如何确保API 的稳定性与正确性?你只需要这一招

霍格沃兹测试开发学社

工作多年,技术认知不足,个人成长慢,职业发展迷茫,该怎么办?

霍格沃兹测试开发学社

用低代码平台搭建低代码平台

iofod jude

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