工单节点使用指南
• 请用平和的语言准确描述你所遇到的问题
• 厂商的技术支持和你一样也是有喜怒哀乐的普通人类,尊重是相互的
• 如果是关于 V2EX 本身的问题反馈,请使用 反馈 节点
ericgui

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

  •  
  •   ericgui · Oct 23, 2018 · 5816 views
    This topic created in 2777 days ago, the information mentioned may be changed or developed.

    容我慢慢道来:

    • 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 replies    2018-10-23 16:14:28 +08:00
    ericgui
        1
    ericgui  
    OP
       Oct 23, 2018
    我已经建了一个 issue

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

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

    意思是找不到这个命令

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

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

    我猜是可行的

    然而我不会用 docker
    sodatea
        12
    sodatea  
       Oct 23, 2018   ❤️ 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  
       Oct 23, 2018 via iPhone
    npm 加了个 npx,就是解决这 PATH 问题的

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

    哎,我睡觉了。


    多谢老兄指点!
    klam
        17
    klam  
       Oct 23, 2018
    这不是你自己部署时候遇到的环境问题吗,跟 Vue 有啥关系?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   844 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 96821589 · 61ms · UTC 21:46 · PVG 05:46 · LAX 14:46 · JFK 17:46
    ♥ Do have faith in what you're doing.