npm v7.0.0 发布 - 带来数个重大更新

2023-11-22 17:40

本文主要是介绍npm v7.0.0 发布 - 带来数个重大更新,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

很难相信,11年前, JavaScript 社区还没有 npm 。快进到今天,npm 现在拥有数百万的开发人员和 130 万个软件包,每月下载 75B

npm v7.0.0 Node.js 15.0.0 一起发布,如果你想立即尝试,可以运行 npm i -g npm@7 进行安装。

令人兴奋的新功能

npm 7带有一些期待已久的功能,其中包括:

  • Workspacesnpm CLI 的一组功能,可支持从单个顶级软件包中管理多个软件包

  • 自动安装 peerDependencies:在 npm 7 之前,开发人员需要自己管理和安装peerDependencies。新的peer dependencies可确保在 node_modules 树中peerDependencies的位置处或之上找到有效匹配的 peerDependencies

  • package-lock v2和对yarn.lock 的支持:新的 package-lock 格式将释放确定性可复制构建的功能,并且包括 npm 完全构建软件包树所需的一切。在忽略 npm 7yarn.lock 文件之前,npm cli现在可以将 yarn.lock 用作软件包元数据和分辨率指南的来源。

旧的又是新的

npm 的内部结构已得到重大重构。在分离关注点方面已经付出了巨大的努力。例如,对 node_modules 树的检查和管理已移至 Arborist 模块 。你可以在 npmjs 博客上中了解有关 Arborist 的信息。

这些内部更改将确保 npm 代码库随着时间的推移更加可靠并且易于维护。更少的错误和更快的迭代周期,我们将能够比以往更快地将更新交付给 npm

我们已经使用 Node.js 测试套件 CITGMnpm 7.0.0 进行了测试,并且很高兴地报告说,尽管内部有巨大的变化,当 npm 7npm 6120+ 高度依赖的模块运行时,没有新的模块会失败!

重大变化

尽管对 npm 内部进行了大修,但团队仍在不懈地努力,以确保对大多数工作流的干扰最小。也就是说,必须进行一些重大更改才能改善总体开发人员体验。npm 7.0.0中 的重大更改包括:

  • 自动安装 peer dependencies (虽然我们认为此功能是理想的新行为,但它确实有可能破坏某些工作流程)。

  • npm 使用 package.exports 字段,因此能再使用 require() npm 的内部模块。

  • npx 已完全重写为 npm exec 命令。功能上有很多更改,最明显的是,如果你试图运行的模块尚未安装,会出现提示。

  • npm audit--json 的可读性和输出样式方面都发生了重大变化 。

下一步是什么

npm 7 是一个很大的变化,我们要格外小心,以免破坏使用 npm 的数百万个工作流程,尤其是在生产环境中。因此,我们将从 Node.js 中选取一个页面,并逐步发布该版本。

npm 7.0.0 不会被标记为 latest; 除非你通过运行 npm install -g npm@7 或安装 Node.js 15 进行选择,否则默认情况下,你的工作流将不会获得 npm v7.0.0

尽管我们有信心该版本可以每天使用,但我们希望更多地用于生产环境,以获取你的反馈和错误报告。当我们确定 npm 7 符合要包含在 Node.js LTS 发行版中的标准时,我们将发行版发布为 latest

我们还将继续通过新功能来改进 npm CLI,包括 Workspaces包覆盖。如果你对 npm CLI 的功能有任何想法,请查看我们的 RFC 库(https://github.com/npm/rfcs)并打开一个 issue

了解更多:https://github.blog/2020-10-13-presenting-v7-0-0-of-the-npm-cli/

  • 关注公众号【前端宇宙】,每日获取好文推荐

  • 添加微信,入群交流


“在看和转发”就是最大的支持

这篇关于npm v7.0.0 发布 - 带来数个重大更新的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/411810

相关文章

定价129元!支持双频 Wi-Fi 5的华为AX1路由器发布

《定价129元!支持双频Wi-Fi5的华为AX1路由器发布》华为上周推出了其最新的入门级Wi-Fi5路由器——华为路由AX1,建议零售价129元,这款路由器配置如何?详细请看下文介... 华为 Wi-Fi 5 路由 AX1 已正式开售,新品支持双频 1200 兆、配有四个千兆网口、提供可视化智能诊断功能,建

Redis缓存问题与缓存更新机制详解

《Redis缓存问题与缓存更新机制详解》本文主要介绍了缓存问题及其解决方案,包括缓存穿透、缓存击穿、缓存雪崩等问题的成因以及相应的预防和解决方法,同时,还详细探讨了缓存更新机制,包括不同情况下的缓存更... 目录一、缓存问题1.1 缓存穿透1.1.1 问题来源1.1.2 解决方案1.2 缓存击穿1.2.1

五大特性引领创新! 深度操作系统 deepin 25 Preview预览版发布

《五大特性引领创新!深度操作系统deepin25Preview预览版发布》今日,深度操作系统正式推出deepin25Preview版本,该版本集成了五大核心特性:磐石系统、全新DDE、Tr... 深度操作系统今日发布了 deepin 25 Preview,新版本囊括五大特性:磐石系统、全新 DDE、Tree

Linux Mint Xia 22.1重磅发布: 重要更新一览

《LinuxMintXia22.1重磅发布:重要更新一览》Beta版LinuxMint“Xia”22.1发布,新版本基于Ubuntu24.04,内核版本为Linux6.8,这... linux Mint 22.1「Xia」正式发布啦!这次更新带来了诸多优化和改进,进一步巩固了 Mint 在 Linux 桌面

多模块的springboot项目发布指定模块的脚本方式

《多模块的springboot项目发布指定模块的脚本方式》该文章主要介绍了如何在多模块的SpringBoot项目中发布指定模块的脚本,作者原先的脚本会清理并编译所有模块,导致发布时间过长,通过简化脚本... 目录多模块的springboot项目发布指定模块的脚本1、不计成本地全部发布2、指定模块发布总结多模

SpringCloud配置动态更新原理解析

《SpringCloud配置动态更新原理解析》在微服务架构的浩瀚星海中,服务配置的动态更新如同魔法一般,能够让应用在不重启的情况下,实时响应配置的变更,SpringCloud作为微服务架构中的佼佼者,... 目录一、SpringBoot、Cloud配置的读取二、SpringCloud配置动态刷新三、更新@R

Ubuntu 24.04 LTS怎么关闭 Ubuntu Pro 更新提示弹窗?

《Ubuntu24.04LTS怎么关闭UbuntuPro更新提示弹窗?》Ubuntu每次开机都会弹窗提示安全更新,设置里最多只能取消自动下载,自动更新,但无法做到直接让自动更新的弹窗不出现,... 如果你正在使用 Ubuntu 24.04 LTS,可能会注意到——在使用「软件更新器」或运行 APT 命令时,

高效+灵活,万博智云全球发布AWS无代理跨云容灾方案!

摘要 近日,万博智云推出了基于AWS的无代理跨云容灾解决方案,并与拉丁美洲,中东,亚洲的合作伙伴面向全球开展了联合发布。这一方案以AWS应用环境为基础,将HyperBDR平台的高效、灵活和成本效益优势与无代理功能相结合,为全球企业带来实现了更便捷、经济的数据保护。 一、全球联合发布 9月2日,万博智云CEO Michael Wong在线上平台发布AWS无代理跨云容灾解决方案的阐述视频,介绍了

poj3468(线段树成段更新模板题)

题意:包括两个操作:1、将[a.b]上的数字加上v;2、查询区间[a,b]上的和 下面的介绍是下解题思路: 首先介绍  lazy-tag思想:用一个变量记录每一个线段树节点的变化值,当这部分线段的一致性被破坏我们就将这个变化值传递给子区间,大大增加了线段树的效率。 比如现在需要对[a,b]区间值进行加c操作,那么就从根节点[1,n]开始调用update函数进行操作,如果刚好执行到一个子节点,

hdu1394(线段树点更新的应用)

题意:求一个序列经过一定的操作得到的序列的最小逆序数 这题会用到逆序数的一个性质,在0到n-1这些数字组成的乱序排列,将第一个数字A移到最后一位,得到的逆序数为res-a+(n-a-1) 知道上面的知识点后,可以用暴力来解 代码如下: #include<iostream>#include<algorithm>#include<cstring>#include<stack>#in