容我慢慢道来:
travis ci,自动构建,一开始仅仅是自动 build,还挺好,后来加上了 firebase,自动 deploy,第一次 build 和 deploy 都成功,后面全部失败,无论怎么修改 yml 文件,都是失败
同样的一个 repo,一个字没改,用 netlify,第一次自动构建( build 和 deploy ),成功了,后面全部失败
travis ci,去掉自动 deploy 和 env 参数,立刻就可以自动 build 成功了
本地 build,全部成功,不管是 windows 环境( MINGW64 ),还是 Ubunut 14.04 LTS (先 git clone,然后手动执行 yarn build )
build 和 deploy 失败的 log 都是一个:
6:03:50 PM: $ vue-cli-service build
6:03:50 PM: /bin/sh: 1: vue-cli-service: not found
error Command failed with exit code 127.
不管我怎么改,哪怕在 travis ci 写 script,把 Ubuntu 的 dash 替换为 bash ( askubuntu 上的),都失败!!
google 都反到第 10 页,也没见一个靠谱的回答。
vuejs 的 issue 里说是 npm 的问题,但兄弟我用 yarn
我已经没脾气了
1
ericgui OP |
2
noe132 2018-10-23 11:15:57 +08:00 via Android
这种不是环境变量的问题么?
|
4
66beta 2018-10-23 11:29:50 +08:00 via Android
最前面 yarn 安装一下
|
5
reus 2018-10-23 11:30:53 +08:00
6:03:50 PM: /bin/sh: 1: vue-cli-service: not found
意思是找不到这个命令 首先确认有这个程序,然后看看在不在 PATH 里 |
10
binux 2018-10-23 11:53:15 +08:00 via Android
这就是构建环境差异的问题啊,CI 环境的 node 一般都不是全局的,你安装了也不一定会往系统 bin 下面放。
travis ci 如果是公开 build,你可以 email support 让他们给你开 ssh,你自己连上去一条条命令执行看就好了。 你搜不到解决方案,很大概率是因为你不知道问题出在哪,所以不知道怎么搜。你拿 vuejs+travis 之类的搜索,太具体了。 |
11
ericgui OP |
12
sodatea 2018-10-23 12:13:07 +08:00 1
怎么都反馈到 V2EX 上了……
我之前回复了说应该是 sudo 导致的环境变量覆盖问题,然后你试了一下出错,也不看错误 log 就 revert,就过来回复说不是这个问题。 然而仔细看 log https://travis-ci.org/whizjs/superjs/builds/444917286,这次出错的是 `sudo yarn install`,跟之前不一样,而 Travis 的 node 环境显然不是全局的(他们用了 nvm ),当然不成功……所以解决办法就是这些命令都不要用 sudo 去执行。 还好我去翻了一下 build history …… |
13
ETiV 2018-10-23 12:25:47 +08:00 via iPhone
npm 加了个 npx,就是解决这 PATH 问题的
可以试一下 |
16
ericgui OP @ETiV travis 可以成功了,但其实是部署的时候,要环境变量,比如 netlify,加上环境变量,用 npx,可以 build 了,但又找不到 dist 目录了。。。。。
哎,我睡觉了。 多谢老兄指点! |
17
klam 2018-10-23 16:14:28 +08:00
这不是你自己部署时候遇到的环境问题吗,跟 Vue 有啥关系?
|