Bitbucket pipeline自定义缓存不生效 子目录node_modules无法缓存
问题原因
该报错提示说明Bitbucket Pipelines在执行完当前Step的所有脚本后,扫描你自定义的缓存路径src/ui/node_modules时,识别到该路径不存在或目录为空,因此跳过了缓存上传环节。
解决方案
按优先级依次尝试以下操作即可解决:
- 先确认node_modules目录实际生成成功
在你的Step脚本末尾增加目录校验命令,确认npm install执行完成后目标路径确实有内容:
script: - cd src/ui - npm install - ls -la node_modules # 新增这行,执行后查看日志是否有文件列表输出 - CI=false npm run build
如果日志中该目录为空,说明npm install实际执行失败(只是未抛出错误中断流水线),需要优先排查npm install的执行错误。
2. 调整npm命令写法,避免cd切换目录的路径识别问题
不需要cd到子目录执行命令,直接用npm的--prefix参数指定项目根路径,所有操作统一相对于仓库根目录执行,避免路径匹配偏差:
pipelines: default: - step: name: "Frontend" image: node:14.17.1 caches: - frontendnode script: - npm install --prefix src/ui - CI=false npm run build --prefix src/ui definitions: caches: frontendnode: src/ui/node_modules
- 清理历史无效缓存后重试
如果之前有生成过无效的空缓存,进入你的Bitbucket仓库 → 「Pipelines设置」→ 「Caches」,删除已存在的frontendnode缓存,再重新触发流水线即可。
内容的提问来源于stack exchange,提问作者Ethan Chen
相关产品推荐
相关产品推荐

