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

GitHub CI中actions/setup-node执行pnpm install后node_modules的位置

问题:GitHub CI中pnpm安装后node_modules的位置及符号链接创建问题

背景

开发环境下,只需在顶层node_modules中手动创建符号链接即可解决某个依赖问题,但现在需要在GitHub CI Actions的actions/setup-node构建环境中完成同样操作,因此需要先确定pnpm install执行后,本地node_modules的存放位置。

尝试过的操作及失败情况

  • 假设node_modules在当前工作目录(cwd):执行了如下复合Action配置,但其中的ln符号链接命令执行失败
name: 'Intall'
description: 'Sets up the repository'
inputs:
  node-version: # node version on which to build
    description: "Node version for the build"
    required: true
    default: 'latest'
runs:
  using: 'composite'
  steps:
    - name: Set up pnpm
      # pnpm version controlled in top level package.json
      uses: pnpm/action-setup@v4
    - name: Install NodeJS
      uses: actions/setup-node@v4
      with:
        node-version: ${{ inputs.node-version }}
    - name: Install dependencies
      shell: bash
      run: pnpm install --frozen-lockfile
    # pnpm doesn't do this? ¯\_(ツ)_/¯
    # needed for linting
    - name: Link globals package
      shell: bash
      run: ln -s node_modules/.pnpm/globals@15.6.0/node_modules/globals/ node_modules/globals
  • 尝试切换到~/.npm目录操作:参考针对npm ci的方案,执行如下链接命令,仍失败
run: ln -s ~/.npm/node_modules/.pnpm/globals@15.6.0/node_modules/globals/ ~/.npm/node_modules/globals

报错信息:

ln: failed to create symbolic link '/home/runner/.npm/node_modules/globals': No such file or directory

已查阅的相关信息

  • setup-node文档说明该操作会在机器上缓存全局缓存而非node_modules,但未明确全局缓存的具体位置。
  • 从GitHub Actions输出中获取到环境变量PNPM_HOME: /home/runner/setup-pnpm/node_modules/.bin,但PNPM_HOME仅用于存储pnpm自身,并非安装的依赖包。

核心疑问

使用actions/setup-node和pnpm/action-setup执行pnpm install后,本地node_modules的具体存放位置在哪里?如何正确创建指向<node_modules>/.pnpm/node_modules/globals@15.6.0/node_modules/globals的缺失符号链接?


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 19:44:53