我是否必须在需要使用 npm 命令的 bitbucket 管道的每个步骤中进行 npm install

ard*_*dev 8 node.js npm docker aws-lambda bitbucket-pipelines

我有一个 bitbucket 管道 yml,我有运行测试脚本的步骤和运行无服务器部署脚本的步骤。我是否需要在每一步进行 npm install 或者第一个 npm install 是否会继续执行并足以满足后续的每个步骤。除此之外,引擎盖下发生了什么?我知道 Docker 容器已创建;每一步都只是更新容器吗?

- step:
        name: Test and Build
        script: 
          - npm install --no-package-lock
          - npm run test
    - step:
        name: Deploy Serverless
        script:
          - npm i serverless -g
          - npm install --no-package-lock
          - npm run deploy
Run Code Online (Sandbox Code Playgroud)

Jer*_*emy 8

管道中的每个步骤都会创建一个单独的 docker 容器,该容器会拉入您的分支。使用缓存选项将允许您的管道在构建第二步容器时通过从缓存中提取 node_modules 来跳过安装。您仍然必须npm install在每个步骤中包含该行,以告诉管道使用缓存(如果存在)。


Mih*_*hai 7

你能像文档一样实现它吗: https //confluence.atlassian.com/bitbucket/caching-dependencies-895552876.html

功能就在那里。如果它仍然对您不起作用,请告诉我。