BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

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

| 作者 James Chesters 关注 1 他的粉丝 ,译者 张龙 关注 14 他的粉丝 发布于 2015年7月6日. 估计阅读时间: 4 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

近日,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

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

非常重要的更新 by 随 风

终于等到这次的更新了,模块嵌套依赖实在死非常浪费空间可性能。

可喜可贺 by zhang zhijia,.

一个全局,一个模块可覆盖的机制,大大的减少了安装文件的大小。

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

2 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT