BitBucket管道没有为npm install使用缓存

时间:2018-03-19 11:03:54

标签: bitbucket bitbucket-pipelines

我有一个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需要安装依赖项,假设它们已经包含在已经恢复的缓存中。

1 个答案:

答案 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

可能会解决您的问题