You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NodeJs19+NPM8.19.3环境下Puppeteer安装路径异常及修改咨询

Puppeteer全局安装路径问题解答

为什么Chrome会出现在/root/.cache目录?

这是Puppeteer的版本变更导致的行为调整。从v19.x版本开始,Puppeteer不再将Chrome二进制文件打包到全局node_modules目录,而是默认存储到用户缓存目录(如root用户的/root/.cache/puppeteer)。这个改动是为了优化磁盘占用——多个依赖不同版本Puppeteer的项目可以共享对应版本的Chrome缓存,避免重复下载。

如何将Chrome指定安装到/usr/lib/node_modules目录?

npm的prefix配置仅控制Node包本身的安装位置,无法影响Puppeteer单独下载的Chrome二进制文件。你需要通过Puppeteer专属的环境变量来指定浏览器存储路径:

  • 临时生效(仅当前终端会话):

    1. 设置环境变量指定Chrome存储路径:
      export PUPPETEER_DOWNLOAD_PATH=/usr/lib/node_modules/puppeteer/.local-chromium
      
    2. 执行全局安装命令:
      npm install -g puppeteer --unsafe-perm=true
      
  • 永久生效(所有终端会话):
    将上述export命令添加到root用户的~/.bashrc或系统级的/etc/profile文件中,保存后执行source ~/.bashrc或重启终端即可。

注意事项

  • Puppeteer的核心包代码仍会安装到npm全局prefix对应的目录(默认就是/usr/lib/node_modules),只是Chrome二进制文件会被放到你指定的路径下。
  • 确保目标目录有足够的读写权限,root用户执行安装通常无需额外权限,但如果后续用普通用户运行Puppeteer,需给该目录设置相应权限。

验证安装结果

安装完成后,可通过以下命令确认Chrome的实际路径:

node -e "const puppeteer = require('puppeteer'); console.log(puppeteer.executablePath())"

输出应指向你指定的/usr/lib/node_modules下的Chrome路径。

内容的提问来源于stack exchange,提问作者user2972081

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 13:41:02