Node.js集成Pyroscope触发regenerator-runtime错误求助
解决Pyroscope Node.js集成的两个问题
Node v18/v19安装依赖失败(pprof编译报错)
这是因为pprof依赖需要本地编译二进制文件,你的Manjaro系统缺少必要的构建工具链,按以下步骤处理:
- 安装基础编译套件和Python:
sudo pacman -S base-devel python - 删除现有依赖缓存和锁文件:
rm -rf node_modules package-lock.json - 重新安装依赖,若仍失败则强制从源码编译pprof:
npm install # 备选方案:强制源码编译pprof npm install --build-from-source pprof
Node v16运行时模块找不到(regenerator-runtime报错)
该问题是ES模块模式下,@pyroscope/nodejs的ESM包导入regenerator-runtime时省略了.js后缀,而Node的ES模块严格要求完整路径后缀,可从以下三种方案中选其一:
- 安装依赖并添加启动参数
- 先安装
regenerator-runtime:npm install regenerator-runtime --save - 启动Node时添加后缀自动补全的实验参数:
node --experimental-specifier-resolution=node dist/index.js
- 先安装
- 升级
@pyroscope/nodejs到最新版本
官方可能已修复ESM导入路径问题,执行升级:npm update @pyroscope/nodejs - 临时修改依赖文件(不推荐)
找到node_modules/@pyroscope/nodejs/dist/esm/index.js中的导入语句,将import "regenerator-runtime/runtime"改为import "regenerator-runtime/runtime.js",但该修改会在下次安装依赖时被覆盖。
内容的提问来源于stack exchange,提问作者strblr
相关产品推荐
相关产品推荐

