gpt4 book ai didi

node.js - 亚搏体育appCI : How can I reuse installed npm packages between jobs?

转载 作者:IT老高 更新时间:2023-10-28 23:12:41 27 4
gpt4 key购买 nike

我有一个使用 Gulp 进行构建的 GitLab Pages 站点。我的 .gitlab-ci.yml 文件与此类似:

image: node:latest

before_script:
- npm install gulp-cli -g
- npm install gulp [...and a whole bunch of packages] --save-dev

build:
stage: build
script:
- gulp buildsite
artifacts:
paths:
- public

pages:
stage: deploy
script:
- gulp
artifacts:
paths:
- public

cache:
paths:
- node_modules/

buildpages 作业之前,会执行 npm install 命令(在每个作业之前执行一次)。由于我有很多包,这通常需要一段时间。

有没有办法在整个构建中只安装一次?

我认为这就是 cache 应该提供的帮助,但它似乎仍然会重新下载所有内容。

最佳答案

尽管评论中的答案基本上是正确的。我认为针对您的案例的具体答案会很好。您可以使用的一种方法是添加第三阶段来承担安装 Node 模块的负载,此外您还可以缓存它们以加速后续构建:

image: node:latest

stages:
- prep
- build
- deploy

before_script:
- npm install gulp-cli -g

prep:
stage: prep
script:
- npm install gulp [...and a whole bunch of packages] --save-dev
artifacts:
paths:
- node_modules
cache:
paths:
- node_modules

build:
stage: build
script:
- gulp buildsite
artifacts:
paths:
- public

pages:
stage: deploy
script:
- gulp
artifacts:
paths:
- public

此解决方案将只执行一次安装并将结果缓存以供将来的 ci 管道使用,您还可以在 Node 模块工件上设置过期时间。

关于node.js - 亚搏体育appCI : How can I reuse installed npm packages between jobs?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43751313/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com