如何在GitHub Actions中为actions/setup-node指定工作目录路径
问题原因
working-directory参数仅对run类型的执行步骤生效,无法作用于uses调用的Action。你开启actions/setup-node的npm缓存功能后,该Action默认仅会在仓库根目录查找package-lock.json文件,无法识别存放在frontend子目录的锁文件,因此触发报错。
修复方案
修改nodejstest任务的配置,补全缺失的版本矩阵配置,同时新增cache-dependency-path参数指定锁文件路径即可:
nodejstest: runs-on: ubuntu-latest # 补全你缺失的node版本矩阵配置 strategy: matrix: node-version: [16.x] # 可根据需求替换/新增你需要的Node版本 steps: - uses: actions/checkout@v2 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v2 with: node-version: ${{ matrix.node-version }} cache: 'npm' # 新增此行,指定package-lock.json的实际路径 cache-dependency-path: ./frontend/package-lock.json - run: npm ci working-directory: ./frontend - run: npm run build --if-present working-directory: ./frontend - run: npm test working-directory: ./frontend
如果使用yarn/pnpm作为包管理器,只需将cache-dependency-path的值替换为对应锁文件的路径即可。
内容的提问来源于stack exchange,提问作者SirHawrk
相关产品推荐
相关产品推荐

