gitlab-ci打包

首先感谢各位前辈踩过的坑,总结的经验,贡献的力量。
Gitlab CI yaml官方配置文件翻译 (https://segmentfault.com/a/1190000010442764)
参考资料汇总(https://github.com/Fennay/gitlab-ci-cn)

#话不多说,先看代码

image: ubuntu:latest             #由于我用 ubuntu的deb打包,所以需要ubuntu的环境,#若不加容器镜像,它默认是一个linux的。那就不能打包了。

variables:                             #变量是用来 容器和缓存之间交互的。
  filename: "falcon_agent-*.deb"

stages:
  - build

build:falcon-agent:
  stage: build
  script: 
   - sh build_dpkg.sh     #此处执行脚本, 他默认会把你提交到git 上的代码都pull下来。 之前报错,没找到build_dpkg.sh,后来用image 和  sh build_dpkg.sh 后就好了。

  artifacts:             #一开始我没有这个,所以ci文件能pass,却没有包。这个就是用来生成包。留在gitlab上,给人下载的。
    paths:
     - $filename         #此处 一开始我用  *.deb.希望能匹配,结果报错。 用.deb可以,但是zip文件里是空的,看来是需要指定。
     					#此处。我的deb在当前路径,所以直接用

#关于build_dpkg.sh。如下

#!/bin/bash
rm *.deb
DATE=`date '+%Y%m%d_%H%M%S'`
FIL
### 可能原因分析 在 GitLab CI 中构建 Vue 项目时出现 `sh: 1: vue-cli-service: not found` 错误,通常表明环境中缺少必要的依赖项或工具链配置不正确。以下是可能导致该错误的原因: - **未安装全局的 `@vue/cli-service` 或者本地项目的依赖未正确安装**:如果项目依赖未通过 `npm install` 正确加载,则 `vue-cli-service` 不会被识别[^1]。 - **Node.js npm/yarn 版本不匹配**:某些版本的 Node.js 可能无法兼容特定版本的 Vue CLI 工具链[^2]。 - **CI 配置文件中的缓存设置不当**:如果 `.gitlab-ci.yml` 文件中启用了缓存机制,而之前的构建失败留下损坏的节点模块,则后续运行可能继承这些损坏的依赖[^3]。 ### 解决方案 #### 方法一:确保所有依赖已正确定义并成功安装 确认 `package.json` 文件中包含如下开发依赖: ```json { "devDependencies": { "@vue/cli-service": "^4.5.0" } } ``` 在 `.gitlab-ci.yml` 文件中加入显式的依赖安装命令,并清除任何潜在残留数据: ```yaml before_script: - rm -rf node_modules || true - npm cache clean --force - npm ci ``` 这里使用了 `npm ci` 而不是普通的 `npm install` ,因为前者能够更严格地按照锁定文件 (`package-lock.json`) 来管理依赖关系,从而减少因不同开发者机器上存在差异而导致的问题。 #### 方法二:调整 Node.js 环境变量 有时需要手动指定环境变量来适配不同的操作系统需求。可以在脚本部分增加以下内容以强制设定生产模式下的编译参数: ```bash export NODE_ENV=production && npx vue-cli-service build ``` 注意这里的 `npx` 命令可以直接调用已经存在于当前工作区内的可执行文件,无需额外将其设为全局可用。 对于 Windows 平台下可能出现的 MSBuild 相关警告(如引用[3]提到的情况),建议预先安装 Visual C++ 构建工具集作为基础支持库之一。 #### 方法三:切换到 Yarn 替代 NPM 处理器 鉴于部分场景下 yarn 更加稳定可靠的表现,在尝试上述修正措施仍无果的情况下考虑改用它完成初始化流程操作: ```yaml cache: paths: - node_modules/ stages: - deploy deploy_job: stage: deploy image: node:lts-alpine script: - apk add python make g++ - curl -o- -L https://yarnpkg.com/install.sh | sh - export PATH="$HOME/.yarn/bin:$PATH" - yarn install --frozen-lockfile - yarn run build ``` 此片段展示了如何基于 Docker 映像定义自定义构建上下文的同时引入 Python 支持以及 GNU 编程套件成员 Make 实现跨平台一致性体验优化。 --- ### 总结说明 综上所述,针对 “GitLab CI Vue project build fails with 'vue-cli-service: not found'” 的情况可以从多个角度入手排查修复,包括但不限于重新整理依赖树结构、精确定位目标执行路径以及灵活运用替代解决方案等手段达成最终目的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值