最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

npm 4.0 废弃 Prepublish 生命周期脚本

  • 2016-10-31
  • 本文字数:1146 字

    阅读完需:约 4 分钟

npm 发布了 4.0.0 版本,这是 2015 年发布 npm 3 之后的第一个语义化的主版本。

尽管依然是一个实验性的发布版本,v4 还是带来了一些破坏性的变更,包括重写的npm search、废弃prepublish以及npm scripts行为的变化。

Kat Marchán 是 npm 的软件工程师,他在 Github 上分享了这次升级的消息,他提到npm 之前的主版本更新曾经带来过非常严重的影响,但4.0 对开发人员日常使用所带来的影响会小得多,它的变化主要局限在命令行接口上,对更大的生态系统的影响很小。

Marchán 提到最新的这次发布也宣告一个时代的结束,npm 2.x 和 3.x 将会进入维护状态,“除了重要的缺陷修正和安全补丁”,它们将不会再进行更新。

关于npm search,Marchán 这样说到:

让我们面对这一问题——npm search已经不能正常运行了。这些年随着时间的推移,它变得越来越慢,除此之外,它已经到了一个临界点,我们已经无法将整个注册表元数据放到内存中了,试图使用这个命令的人会看到 node 将提示一个非常恐怖的内存溢出崩溃。

为了提升开发人员的体验,Marchán 说要彻底修改npm search,不过这尚需一段时间,但是团队已经重写了之前的实现,以便“在运行过程中从搜索端点和本地缓存中得到结果。”

4.0 还废弃了 npm 中的prepublish生命周期脚本,将其替换为prepare脚本。Marchán 告诉 InfoQ:“新脚本的运行方式完全相同,会有一个新的 prepublishOnly事件,只有进行 npm publish的时候,该事件才会执行。”

Marchán 说,只有当个人用户发布他们自己的包的新版本时,才会受到这个破坏性变化的影响,已经发布到 npm 注册表上的包已经超过了 350,000 个,这个更大的生态系统并不会受此影响。

对于用户来说,npm 4.0 版本的发布也使得 partial shrinkwraps 成为了历史, npm shrinkwrap 允许用户锁定整个依赖树,让每个包使用特定的版本,这样的话,两个不同的人或者在两个不同的时间点,能够执行两个不同的构建。

Marchán 这样说到:

如果在你的项目中有npm-shrinkwrap.json的话,那么 npm 将不会安装任何没有明确列出的包,除非它是devDependency。这为一些优化打开了方便之门,通过移除一些令人望而生畏的极端场景,npm shrinkwrap 的使用也会更加便利。如果你通过npm shrinkwrap --dev为 shrinkwrap 添加了devDependencies的话,我们会忽略package.json中的devDependency安装。

npm 最新的主版本不仅包含了破坏性的变更,在发出的请求中,npm 还会发送Npm-ScopeNpm-In-CI头信息,允许注册表实现感知用户 / 作用域的特性和服务。

4.0 将会成为 npm 官方的最新发布版本,4.0.1 版本很快也会推出,这个版本会包含一些小的功能提升。

npm 团队推荐开发人员将 npm 升级到最新版本,但是他们也会继续维护一个版本,用于 Node 的默认分发。

查看英文原文 npm 4.0 Deprecates Prepublish Lifecycle Script

2016-10-31 19:002543

评论

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

新晋 CNCF 沙箱项目 OpenClusterManagement 带来了它的最新特性

阿里巴巴中间件

阿里云 中间件 KubeVela cncf OCM

架构实战训练营|课后作业 模块 5

Geek_6bb688

ASP.NET Core中三个egg疼的路由函数

喵叔

28天写作 12月日更

车用能源的终极:氢能车落地普及还要多久?

脑极体

RocketMQ这样做,压测后性能提高30%

中间件兴趣圈

RocketMQ 性能 Apache RocketMQ

资产数字化的当下,数据隐私危如累卵

CECBC

解密 Dubbo 三大中心的部署架构

阿里巴巴中间件

阿里云 微服务 云原生 dubbo 中间件

040022-week5-design

InfoQ_70156470130f

超基础的机器学习入门-原理篇

凹凸实验室

机器学习 AI 低代码平台

快速云原生化,从数据中心到云原生的迁移最佳实践

阿里巴巴云原生

阿里云 云原生 实践 迁云方案

架构训练营第3期模块5作业

吴霏

架构训练营

11 张图 | 讲透原理,最细的 Eureka 增量拉取

悟空聊架构

悟空聊架构

四步轻松玩转微服务敏捷开发

阿里巴巴中间件

阿里云 微服务 云原生 敏捷开发 中间件

还在担心流量防护问题?Sentinel来帮你!

XiaoLin_Java

SpringCloud Alibaba 流量防控 签约计划第二季

架构实战营 - 模块5 - 作业

lucian

架构实战营

邀请函|2021 云原生实战峰会,邀请您免费现场参会报名

阿里巴巴云原生

阿里云 云原生 峰会

模块5作业

Asha

互联网公司如何塑造一支有创业精神的技术团队?

阿里巴巴中间件

创业 阿里云 中间件

聊聊SAAS

Im胡子

SaaS

一场关于元宇宙公司之死的剧本杀

脑极体

说出你和「云原生」的故事,获得年度云原生顶级盛会通行证

阿里巴巴云原生

阿里云 开源 云原生 投稿

linux之cp强制复制文件

入门小站

Linux

硬核图解 SpringCloud 源码系列

悟空聊架构

SpringCloud 悟空聊架构 内容合集 签约计划第二季 技术专题合集

SpringCloudAlibaba微服务技术栈精讲大合集

XiaoLin_Java

内容合集 签约计划第二季 技术专题合集

[Pulsar] 设置JWT认证

Zike Yang

Apache Pulsar 12月日更

6000字 | 深入理解 Ribbon 的架构原理

悟空聊架构

悟空聊架构

32 K8S之DaemonSet/Job/CronJob控制器

穿过生命散发芬芳

k8s 28天写作 12月日更

未来,区块链将在这些领域广泛应用!

CECBC

后端程序员福利套餐,22份资料合集,你能想到的关键技术,都在这里

奔着腾讯去

c++ golang Linux 音视频 学习资料

趣谈“分布式链路追踪“组件发展史

悟空聊架构

分布式 链路追踪 28天写作 悟空聊架构 12月日更

模块五作业

侠客行

架构实战营 「架构实战营」

npm 4.0废弃Prepublish生命周期脚本_JavaScript_James Chesters_InfoQ精选文章