写点什么

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

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

关注

评论

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

实践解析丨Rust 内置 trait:PartialEq 和 Eq

华为云开发者联盟

rust hash Trait PartialEq Eq

Veema 寄来的新书

吴威

vmware 容灾 备份 veeam esxi

带你全面认识CMMI V2.0(三)——实践域

IPD产品研发管理

CMMI

【IstioCon 2021】如何在Istio中进行源地址保持?

华为云原生团队

开源 云原生 istio 华为云 服务网格

LeetCode题解:126. 单词接龙 II,BFS,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

企业数字化转型,营销技术驱动超级增长!

博文视点Broadview

上帝视角掌管城市动向!智慧园区驱动城市数字化转型

一只数据鲸鱼

物联网 数据可视化 智慧城市 智慧园区

Java学习笔记——实体类(ENTITY,VO,DTO,BO)

棉花糖

Java

Flink 提交作业运行的各种模式总结

shengjk1

flink flink 执行

Flink 计算 PV UV

shengjk1

flink flink 实战

一文搞懂 Flink 中的锁

shengjk1

flink flink 锁

图像视频压缩:深度学习,有一套

华为云开发者联盟

深度学习 自编码器 图像压缩 循环神经网络 视频压缩

java deep vs shallow copies

shengjk1

Java deep copy shallow cop

一文搞懂 FlinkSQL 的 KafkaSource

shengjk1

flink flink源码 flink sql

寻找被遗忘的勇气(二十三)

Changing Lin

3月日更

NA公链(Nirvana)NAC公链独步公链江湖

区块链第一资讯

区块链

C语言性能优化:减少相关性依赖,利用指令并行提升性能

1

编程 性能优化 C语言 cpu 100%

如何在Python中实现Round函数?

华为云开发者联盟

Python 函数 Numpy Round 舍入函数

人工智能能和人类辩论了;《云网产业发展白皮书》发布

京东科技开发者

人工智能

万众瞩目的EGG Network,备受期待的New-DeFi自治共识论坛在海口闭幕

币圈那点事

区块链

一文搞懂Flink SQL执行过程

shengjk1

flink flink源码 flink sql flink sql 执行过程

一文搞懂 FlinkSQL函数 LAST_VALUE 的原理

shengjk1

flink flink sql flink 源码

适配器模式在Mybatis中的妙用

Java小咖秀

Java 源码 设计模式 mybatis 开发

Python OpenCV 图像处理二值化,取经之旅第 7 天

梦想橡皮擦

3月日更

开源的 Switch 模拟器——GitHub 热点速览 v.21.12

HelloGitHub

GitHub 开源

JVM G1GC的算法与实现

Yano

Java JVM GC G1GC

LiteOS内核源码分析:位操作模块

华为云开发者联盟

LiteOS 源代码 位操作 bit Huawei LiteOS

深入理解ES8的新特性SharedArrayBuffer

程序那些事

JavaScript ecmascript 程序那些事 es8

AIOT技术大起底:别人开发“软件”,海尔智家开发“生活”

DT极客

FlinkSQL 平台

shengjk1

flink flink sql flink sql 平台

Flink 计算 TopN

shengjk1

flink flink 实战 flink topN

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