写点什么

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

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

关注

评论

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

2023-07-20:假设一共有M个车库,编号1~M,时间点从早到晚是从1~T, 一共有N个记录,每一条记录如下{a, b, c}, 表示一辆车在b时间点进入a车库,在c时间点从a车库出去, 一共有K

福大大架构师每日一题

福大大架构师每日一题

掌控MySQL并发:深度解析锁机制与并发控制

砖业洋__

表锁 MySQL并发控制 隐式锁 插入意向锁 行锁

Spring高手之路2——深入理解注解驱动配置与XML配置的融合与区别

砖业洋__

XML配置 spring框架 注解驱动配置 组件注册 组件扫描

AI 改变我们的工作方式 | 社区征文

宇宙之一粟

年中技术盘点

单线程 Redis 如此快的 4 个原因

越长大越悲伤

redis redis为什么如此快

工具产业推广级!腾讯云 CODING 度量平台获得业内权威机构高度认可

CODING DevOps

[Huggingface]系列文章(1)-认识Transformers

alexgaoyh

文本分类 文本生成 huggingface sentiment-analysis text-generation

C语言 typedef的用法示例讲解

芯动大师

Spring高手之路1——深入理解与实现IOC依赖查找与依赖注入

砖业洋__

ioc 依赖注入 spring框架 依赖查找 IOC面试题

Nautilus Chain 主网上线,创世 ZBC 质押即将开启

股市老人

Filter for GO

数由科技

喜报| 无限极入选信通院 2023 XOps“领新杯”业技融合攻坚先锋案例

CODING DevOps

英特尔携钉钉及新华三以创新解决方案变革未来远程协作体验

E科讯

AITO问界,先经沧海而后造船

脑极体

智能汽车

性能最快的代码分析工具,Ruff 正在席卷 Python 圈!

EquatorCoco

Python 开源 框架

第四届“先导杯”全国挑战赛正式开赛 百万奖金等你来拿

科技热闻

Unity 发布《2023 移动游戏增长与变现报告》,聚焦游戏行业高效增长策略

Geek_2d6073

Python爬虫超详细讲解(零基础入门,老年人都看的懂)

Java随想录

Java Python

HTTP接口性能压力测试

javalover123

性能测试 压测 API 压力测试 HTTP API

Nautilus Chain 主网上线,创世 ZBC 质押即将开启

大瞿科技

AI与HPC融合,未来会朝什么方向发展 | 社区征文

瓜瓜猪

年中技术盘点

AI绘图:艺术与科技的交融 | 社区征文

IT蜗壳-Tango

年中技术盘点

英特尔x MAXHUB:以创新解决方案掀起“智能协作”新浪潮

E科讯

PaddleSlim +​OpenVINO助力开发者实现Al模型量化与部署

飞桨PaddlePaddle

人工智能 百度 paddle 百度飞桨

前、后端通用的可视化逻辑编排

悠闲的水

低代码 逻辑编排 低代码平台 可视化编排 可视化开发

新兴技术对中药学的革命|社区征文

爱技术的药学生

AI AIGC 年中技术盘点

Docker 镜像的导出与导入

陈皮

Docker save load

6位字节跳动资深技术人,给校招生的10个成长建议

字节跳动技术范儿

字节跳动 校园招聘

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