美文网首页vue
记一次npm和yarn没有锁死引发的编译错误问题

记一次npm和yarn没有锁死引发的编译错误问题

作者: 前端沧海 | 来源:发表于2019-07-31 10:45 被阅读0次

    一早来到公司,同事说Jenkins一直报错,无法编译,让我看看怎么回事。

    打开编译日志,看到以下错误


    错误日志

    一开始还以为是,我把TypeScript分支不小心合并到了发布分支上面,最近在研究vue和TypeScript结合,起了一个分支来搞这个事情。

    但是看了下git记录,并没有记录,我还特意看了下yarn.lock的eslint的版本,发现也没有升级。

    很奇怪,然后打开Jenkins的编译发布代码,看到如下配置,瞬间知道了原因

    Jenkins的编译发布代码

    我们开发环境一直用的是yarn,没有用npm,代码里面也没有package-lock.json,昨天升级了的我们公司的eslint的包,增加了TypeScript的检测和支持,所以在所以Jenkins用npm编译的时候,默认拉了最新的包,又因为package.json没有锁死版本,导致需用用到TypeScript,导致出错了。

    切换下配置命令

    yarn
    npm run pre
    

    在发布下,发现又失败了

    10:35:03 error get-caller-file@2.0.5: The engine "node" is incompatible with this module. Expected version "6.* || 8.* || >= 10.*". Got "9.10.0"
    10:35:03 error Found incompatible module.
    

    版本不一致,导致又发布失败,切换node版本,再发布,成功了。

    目前公司前端发布依赖于Jenkins,开发环境和线上编译有时会不一致,最好就是换掉Jenkins,发布专门用一个库来管理,用gitlab 自带的ci环境,这样才能最大限度减少这方面的问题。

    相关文章

      网友评论

        本文标题:记一次npm和yarn没有锁死引发的编译错误问题

        本文链接:https://www.haomeiwen.com/subject/trqzrctx.html