生成式AI领域的最新成果都在这里!抢 QCon 展区门票 了解详情
写点什么

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:002537

评论

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

软件工程能力漫谈:比编码更重要的,是项目管理能力

百度开发者中心

直播系统聊天技术(七):直播间海量聊天消息的架构设计难点实践

WorkPlus

飞步科技 x 焱融 YRCloudFile:大幅提升训练效率,开启智驾新纪元

焱融科技

自动驾驶 云计算 分布式 高性能 文件存储

2021 盘点 | 券商 TOP 5 出炉,谁才是最“卷”的券商王者?

博睿数据

关于 ZEGO 支撑 100 亿场高质量直播的秘笈

ZEGO即构

后台开发 CDN 音视频技术 音视频引擎

通过蜜罐技术获取攻击者手机号、微信号【网络安全】

H

黑客 网络安全

技术实践 | 如何给NVMe做RAID

沃趣科技

raid 硬盘

2022年软件开发趋势:远程工作已成主流

码语者

NFT音乐盲盒游戏系统开发方案

薇電13242772558

NFT

Shopee Games 游戏引擎演进之路

Shopee技术团队

前端 游戏开发 egret 游戏引擎

未来的直播技术将会有哪些新的进化形式?

字节跳动视频云技术团队

互联网 科技革命 直播技术 低延时 音视频技术

自动化测试指南

FunTester

敏捷 性能测试 自动化测试 测试框架 FunTester

理想很丰满,现实很骨感,坎坷前行的区块链产业化路在何方?

Akumas

区块链 数字化转型 新基建 十四五规划

网络安全kali渗透学习 web渗透入门 Metasploit---基于SMB协议收集信息

学神来啦

网络安全 kali kali Linux

一撕得:全员参与低代码开发,全面实现企业数字化管理

一只大光圈

钉钉 低代码 数字化 宜搭 一撕得

【重磅发布】百度参编信通院《联邦学习场景应用研究报告(2022年)》

百度开发者中心

技术创想 | Cypress UI 自动化测试框架

领创集团Advance Intelligence Group

昇思MindSpore再突破:蛋白质结构预测训练推理全流程开源,助力生物医药发展

Geek_32c4d0

mindspore 昇思 生物医药

基于Java+SpringMVC+MySql+Layui+H5实现企业门户网站

andy_zf

网站建设

网络安全:小记一次代码审计

网络安全学海

网络安全 信息安全 渗透测试 安全漏洞 代码审计

一次代码审计实战案例【思路流程】

H

网络安全

2022年炙手可热的边缘计算与端智能

战场小包

边缘计算 端智能 3月月更

浙江省人民医院:用宜搭助力党建改革工作,重构医院重大事项议事决策机制

一只大光圈

钉钉 低代码 钉钉宜搭 宜搭 宜搭数字化

无需嵌码的主动式监测:一种预先感知用户体验的最佳实践

博睿数据

投稿开奖丨云服务器ECS征文活动(1月)奖励公布

阿里云弹性计算

阿里云 云服务器 征文投稿开奖 玩转ECS

进入2022年,移动互联网的小程序和短视频直播赛道还有机会吗?

WorkPlus

2023总结

明明

基础

阿里 BladeDISC 深度学习编译器正式开源

阿里云大数据AI技术

深度学习 开源 编译器

2021年信创产业融资分析报告

统小信uos

构建测试的体系化思维(进阶篇)

BY林子

测试体系 质量内建

如何为招聘机构选择CRM系统

低代码小观

低代码 企业管理 企业管理系统 CRM系统

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