V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
工单节点使用指南
• 请用平和的语言准确描述你所遇到的问题
• 厂商的技术支持和你一样也是有喜怒哀乐的普通人类,尊重是相互的
• 如果是关于 V2EX 本身的问题反馈,请使用 反馈 节点
ericgui
V2EX  ›  全球工单系统

vuejs 还是有问题,报告一个 bug

  •  
  •   ericgui · 2018-10-23 10:46:28 +08:00 · 5301 次点击
    这是一个创建于 2234 天前的主题,其中的信息可能已经有所发展或是发生改变。

    容我慢慢道来:

    • 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

    我已经没脾气了

    17 条回复    2018-10-23 16:14:28 +08:00
    ericgui
        1
    ericgui  
    OP
       2018-10-23 11:15:55 +08:00
    我已经建了一个 issue

    我刚刚发现,由于环境变量,只要设置了环境变量,立刻就失败了

    https://github.com/vuejs/vue-cli/issues/2789
    noe132
        2
    noe132  
       2018-10-23 11:15:57 +08:00 via Android
    这种不是环境变量的问题么?
    ericgui
        3
    ericgui  
    OP
       2018-10-23 11:18:57 +08:00
    @noe132 那应该怎么修改呢?真的不太会
    66beta
        4
    66beta  
       2018-10-23 11:29:50 +08:00 via Android
    最前面 yarn 安装一下
    reus
        5
    reus  
       2018-10-23 11:30:53 +08:00
    6:03:50 PM: /bin/sh: 1: vue-cli-service: not found

    意思是找不到这个命令

    首先确认有这个程序,然后看看在不在 PATH 里
    ericgui
        6
    ericgui  
    OP
       2018-10-23 11:31:36 +08:00
    @66beta 只要把环境变量去掉,一行代码不改又可以 build 成功

    所以真的不知道问题出哪里了。
    ericgui
        7
    ericgui  
    OP
       2018-10-23 11:31:49 +08:00
    @reus 只要把环境变量去掉,一行代码不改又可以 build 成功
    reus
        8
    reus  
       2018-10-23 11:33:57 +08:00
    @ericgui 可能是加了环境变量,默认的环境变量就失效了,所以 PATH 失效,找不到命令
    ericgui
        9
    ericgui  
    OP
       2018-10-23 11:42:07 +08:00
    @reus 有道理哈
    binux
        10
    binux  
       2018-10-23 11:53:15 +08:00 via Android
    这就是构建环境差异的问题啊,CI 环境的 node 一般都不是全局的,你安装了也不一定会往系统 bin 下面放。
    travis ci 如果是公开 build,你可以 email support 让他们给你开 ssh,你自己连上去一条条命令执行看就好了。
    你搜不到解决方案,很大概率是因为你不知道问题出在哪,所以不知道怎么搜。你拿 vuejs+travis 之类的搜索,太具体了。
    ericgui
        11
    ericgui  
    OP
       2018-10-23 12:02:47 +08:00
    @binux 所以我其实在考虑写个 dockerfile,travis yml 里写一个命令,执行这个脚本,等于是 docker 里构建好,再 deploy,

    我猜是可行的

    然而我不会用 docker
    sodatea
        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 ……
    ETiV
        13
    ETiV  
       2018-10-23 12:25:47 +08:00 via iPhone
    npm 加了个 npx,就是解决这 PATH 问题的

    可以试一下
    ericgui
        14
    ericgui  
    OP
       2018-10-23 12:43:44 +08:00
    @sodatea 老兄,Evan 估计不会喜欢你这样的态度
    sodatea
        15
    sodatea  
       2018-10-23 12:52:51 +08:00
    @ericgui 我不是很懂,我哪里用词不当了吗?
    ericgui
        16
    ericgui  
    OP
       2018-10-23 12:59:51 +08:00
    @ETiV travis 可以成功了,但其实是部署的时候,要环境变量,比如 netlify,加上环境变量,用 npx,可以 build 了,但又找不到 dist 目录了。。。。。

    哎,我睡觉了。


    多谢老兄指点!
    klam
        17
    klam  
       2018-10-23 16:14:28 +08:00
    这不是你自己部署时候遇到的环境问题吗,跟 Vue 有啥关系?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3227 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 12:36 · PVG 20:36 · LAX 04:36 · JFK 07:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.