我有一个BitBucket存储库,其中包含名为ui
的文件夹中的Angular应用程序的代码和名为api
的文件夹中的Node API。
我的BitBucket管道为Angular应用运行ng test
,但node_modules
文件夹未正确缓存。
这是我的BitBucket管道yml文件:
image: trion/ng-cli-karma
pipelines:
default:
- step:
caches:
- angular-node
script:
- cd ui
- npm install
- ng test --watch=false
definitions:
caches:
angular-node: /ui/node_modules
当构建运行时,它显示:
Cache "angular-node": Downloading
Cache "angular-node": Extracting
Cache "angular-node": Extracted
但当它执行npm install
步骤时,它会说:
在41.944s中添加了1623个包
我正在努力加快构建,我无法解决为什么npm需要安装依赖项,假设它们已经包含在已经恢复的缓存中。
答案 0 :(得分:3)
我的猜测是,你的缓存位置不正确。 有一个可以激活的预先配置的节点缓存(名为“node”)。不需要为此做自定义缓存。(默认缓存失败,因为您的节点构建位于克隆目录的子文件夹中,因此您需要自定义缓存)
缓存位置相对于克隆目录。 bitbucket克隆到/opt/atlassian/pipelines/agent/build
这可能就是为什么你的绝对缓存路径不起作用。
简单地使缓存引用相对应该可以做到这一点
pipelines:
default:
- step:
caches:
- angular-node
script:
- cd ui
- npm install
- ng test --watch=false
definitions:
caches:
angular-node: ui/node_modules
可能会解决您的问题