Bitbucket Pipeline中pnpm ci命令找不到问题求助
Bitbucket Pipeline中pnpm ci命令找不到问题排查
问题根源
Bitbucket Pipeline的每个步骤都是独立的Docker容器——你在install-pnpm步骤里全局安装的pnpm,只会存在于该步骤的容器环境中,不会自动传递到后续步骤。而你配置的pnpm缓存仅针对.pnpm-store包缓存目录,并不包含pnpm本身的可执行文件,所以第二个步骤自然找不到pnpm命令。
解决办法
方案1:在目标步骤中重新安装pnpm
利用缓存加速,直接在执行pnpm ci的步骤里加入pnpm安装命令:
pipelines: pull-requests: main: - step: *install-pnpm - step: name: 'Build and test apps on pull requests' caches: - pnpm - node script: - curl -f https://get.pnpm.io/v6.16.js | node - add --global pnpm@7 - pnpm ci - npx nx workspace-lint
方案2:使用预装pnpm的Docker镜像
替换默认镜像为官方pnpm镜像,省去手动安装步骤:
image: pnpm/pnpm:7-node-latest definitions: caches: pnpm: $BITBUCKET_CLONE_DIR/.pnpm-store steps: - step: &build name: 'Run Build' script: - echo "Running build..." - pnpm run build pipelines: pull-requests: main: - step: name: 'Build and test apps on pull requests' caches: - pnpm - node script: - pnpm ci - npx nx workspace-lint
方案3:将pnpm安装到项目目录本地调用
把pnpm安装到项目node_modules目录,后续用相对路径调用:
修改install-pnpm步骤:
- step: &install-pnpm name: 'Install pnpm' script: - echo "Installing pnpm" - npm install pnpm@7 --save-dev - ./node_modules/.bin/pnpm -v caches: - pnpm - node
后续步骤调用时使用相对路径:
script: - ./node_modules/.bin/pnpm ci - npx nx workspace-lint
内容的提问来源于stack exchange,提问作者kittu
相关产品推荐
相关产品推荐

