pnpm 10.14 支持JavaScript运行时的安装了
一、用corepack管理pnpm来支持运行时安装功能
在Node.js 25之前在里面集成了一个实验性的小工具:corepack,用来管理包管理器的,比如yarn、pnpm。想要支持JavaScript运行时的安装,可以先启用corepack:
corepack enable
然后指定项目所在pnpm的版本:
corepack prepare pnpm@9.15.4 --activate
接下来,安装Node.js版本:
pnpm env use --global 18
现在,pnpm 10.14 支持JavaScript运行时的安装了。
二、pnpm 10.14的支持方法
那我们在Monorepo项目中,要怎样配置呢?
具体配置步骤如下:
- 在项目根目录的package.json中添加devEngines.runtimes,指定运行时Node.js版本的范围:
// package.json
{
"devEngines": {
"runtime": {
"name": "node",
"version": "^22.17.0",
"onFail": "download" // we only support the "download" value for now
}
}
}
- 在子目录,也就是packages/app/package.json的配置是可以覆盖根目录配置的:
// packages/app/package.json
{
"devEngines": {
"runtime": {
"name": "node",
"version": "^18.20.8",
"onFail": "download"
}
}
}
- 结合node的版本管理工具volta实现版本切换:
{
"volta": {
"node": "18.20.8",
"pnpm: "9.15.4"
}
}
当执行pnpm install时,如果你本地的开发环境的Node.js版本比如是16.x,而与项目所需要的版本是22.17。那么,就会通过你指定的版本范围去匹配:
锁文件(lockfile)会保存运行时的版本,以及校验和(checksum)。这样,在本地运行时,也可以保证环境的一致性。
三、用Volta自动切换版本
步骤的第3步,是由Volta通过volta pin命令在package.json中生成的volta字段。当进入项目的目录时,Volta自动切换到指定版本。不用像nvm那样手动操作了。
安装 Volta
在终端输入命令:
curl https://get.volta.sh | base
就会下载安装了:
指定Node的版本
输入volta pin node@22.17.0
就会在package.json中生成volta字段:
pnpm校验devEngines版本
当执行pnpm install时,pnpm会去校验devEngines.runtime的版本,查下版本是否符合。如果符合,就会安装依赖。如果volta指定的版本低于devEngines.runtime要求的版本范围,pnpm就会警告版本不匹配。
完整的package.json配置:
{
"devEngines": {
"runtime": {
"name": "node",
"version": "^22.17.0",
"onFail": "download"
}
},
"volta": {
"node": "22.17.0"
}
}
四、总结
devEngines.runtime就是检查一下环境的兼容性,然后报个警给你而已。那么执行力这块,还需要volta这个“一次配置,全自动切换”的管理运行时版本的智能工具。
pnpm 10.14 支持JavaScript运行时的安装了的更多相关文章
- 教你如何检查一个函数是否为JavaScript运行时环境内建函数
在开发过程中,对于某些API在现有的JavaScript运行时环境不支持的时候,我们大都会采用加入polyfill来解决这个问题.但有些时候我们可能需要知道现在某个API到底是否为运行时环境所原生支持 ...
- 如果您想确保Windows 10在新用户登录时不安装内置应用程序,则必须删除所有配置的应用程序。
原文 如果您想确保Windows 10在新用户登录时不安装内置应用程序,则必须删除所有配置的应用程序. 本文的内容 已安装与配置的应用程序 删除配置的应用程序 安装与配置的应用程序^ 在介绍如何删除所 ...
- Reverse Core 第二部分 - 14&15章 - 运行时压缩&调试UPX压缩的notepad
@date: 2016/11/29 @author: dlive 0x00 前言 周六周日两天在打HCTF2016线上赛,没时间看书,打完比赛接着看~~ 0x01 运行时压缩 对比upx压缩前后的no ...
- [转]UIWebView的Javascript运行时对象
An alternative, that may get you rejected from the app store, is to use WebScriptObject. These APIs ...
- 解决 mac 10.14.4 无法 sublime text 3207 安装 Package Control,以及安装第三方包报错 `Package Control There are no packages available for installation`
下载最新的 sublime text 3207,无法安装 Package Control. 根据官方提示,手动安装 Package Control. 手动安装 Package Control 后,无法 ...
- JavaScript是如何工作的:引擎,运行时和调用堆栈的概述!
摘要: 理解JS执行原理. 原文:JavaScript是如何工作的:引擎,运行时和调用堆栈的概述! 作者:前端小智 Fundebug经授权转载,版权归原作者所有. 本文是旨在深入研究JavaScrip ...
- 解读JavaScript 之引擎、运行时和堆栈调用
转载自开源中国 译者:Tocy, 凉凉_, 亚林瓜子, 离诌 原文链接 英文原文:How JavaScript works: an overview of the engine, the runtim ...
- 解读 JavaScript 之引擎、运行时和堆栈调用
https://www.oschina.net/translate/how-does-javascript-actually-work-part-1 随着 JavaScript 变得越来越流行,很多团 ...
- Visual C++中对运行时库的支持
原文地址:http://blog.csdn.net/wqvbjhc/article/details/6612099 一.什么是C运行时库 1)C运行时库就是 C run-time library,是 ...
- JavaScript是如何工作的01:引擎,运行时和调用堆栈的概述!
概述 几乎每个人都已经听说过 V8 引擎,大多数人都知道 JavaScript 是单线程的,或者它使用的是回调队列. 在本文中,我们将详细介绍这些概念,并解释 JavaScrip 实际如何运行.通过了 ...
随机推荐
- CsvHelper简单使用
发现一个比较好用的处理csv的C#库,CsvHelper: CsvHelper是一个用于读取和写入CSV文件的C#库,支持自动类型转换.自定义类型转换器和灵活的映射选项等功能,使得读写CSV文件变得非 ...
- 晴神宝典之C /C++快速入门
OJ 补充:runtime error通常原因是数组越界,除零,异常调用,堆栈溢出 尽可能远离TLE 选择c++ 输入输出使用printf和scanf basis 变量名取名: (1)不能是c语言标识 ...
- XML注入
XML注入 复现使用的题目为buuoj中的[NCTF2019]Fake XML cookbook 1和[NCTF2019]True XML cookbook 1 参考链接为https://xz.ali ...
- SuperSocket 2.0 的发布标志着.NET Socket 服务器框架迈入了一个全新的时代
2025 年 4 月 20 日 - SuperSocket 团队自豪地宣布正式发布 SuperSocket 2.0,这是这款适用于 .NET 的高性能.可扩展套接字服务器应用程序框架的一个重要里程碑. ...
- golang unsafe遇上字符串拼接优化导致的bug
最近料理老项目的时候被unsafe坑惨了,这里挑一个最不易察觉的错误记录一下. 这个问题几乎影响近几年来所有的go版本,为了方便讨论我就用最新版的1.24.3做例子了. 线上BUG 我们有一个收集集群 ...
- 腾讯IMA VS 飞书知识问答:谁才是2025最强AI知识库?
AI创业失败,可私聊经验教训分享... 前几天小伙伴在讨论我开发的一套社群运营AI分身,其本质其实是一套个人知识库的AI产品,其依赖的就是我过往发布的文章. 这类AI聊天分身,最简单.不考虑" ...
- odoo16里面的常用方法
一.全局搜索与显示 def name_get(self): res = [] for order in self: name = order.name if order.draw_number: na ...
- 最炫酷的企业 AI 助手来啦(含前端源码)!
最近越来越多的企业开始将 MaxKB 在他们企业当中的应用场景官宣了.有时候我们会疑问,这真的是 MaxKB 做的吗? MaxKB 你怎么还能动的? 案例一:医疗资源小助手开场白 效果展示: 源码: ...
- Spring Boot中使用注解实现简单工厂模式
前言 从设计模式的类型上来说,简单工厂模式是属于创建型模式,又叫静态工厂模式(Simple Factory Pattern),但不属于23种GOF设计模式之一.简单工厂模式是由一个工厂对象决定创建出接 ...
- IntelliJ IDEA 中,项目文件右键菜单没有svn选项解决办法
问题描述 欲在IntelliJ IDEA中提交文件至SVN,但是在项目文件上点击右键时,发现右键菜单中没有Subversion的选项,正常情况下是要有的,如下图所示: 图0 解决办法 点击菜单:VCS ...