首页 > V2EX > V2EX-编译事故 感觉前端依赖管理太不省心了 顺便问问有什么优秀解决方案
2022
08-05

V2EX-编译事故 感觉前端依赖管理太不省心了 顺便问问有什么优秀解决方案

rekulas:

前端框架 vue3.1/element-ui
编译工具 npm/cnpm/pnpm

本人主业后端但也会做前端开发,昨天删除 node modules 后重新 install ,结果就出问题了,加载后发现报错
“export ‘createElementBlock‘ (imported as ‘_createElementBlock‘) was not found in ‘vue‘

google 了下发现都建议升级 vue 版本,于是升级到了 3.2 ,dev 调试下发现没什么大问题直接推了更新,由于担心远程缓存便把编译服务器 node modules 也清空,结果发布之后才发现出错,大体如下

vendor.3155b104.js:5 ReferenceError: tagsDialog is not defined
    at Proxy.<anonymous> (index.vue_vue_type_style_index_0_lang.921681d1.js:73:19169)
    at Xm (vendor.3155b104.js:5:4389)

跟同事讨论后怀疑可能是 <componentname ref=”tagsDialog” > 这里的 tagsDialog 没定义新版 vue 不兼容导致的,解决方案是 const taggingDialog = ref();定义下。

我开始以为就几个变量,于是改改改。。。结果越改越多,这样改下去不知道啥时候能改完,生产环境版本也出问题同事催着急用,于是想着能不能降低 vue 版本试试先把生产环境编译出来用着,手动解决 createElementBlock, 于是在 node_modules/.vite/里复制了一大堆新版本的方法过来,最后还是放弃了,因为依赖太多,手动兼容太费时间了。

于是情况就变成了,线上线下都无法编译出可用版本,dev 调试却没事,同事急着用。。。我都打算先本地跑个 dev 版本反代到生产环境先撑着再来修改,不过还好后面发现备份服务器上还有个备份,才暂时先跑起了。

感觉最近几年前端开发确实越来越便捷,但是依赖始终是个大问题,我同事更加精通前端开发几乎媲美比较专业的前端开发工程师了,但是之前打包 electron 也遇到更新后再也无法编译的问题,后面分析可能是某个组件的依赖更新了导致另一个依赖出了问题。相比起以前简陋的 jq ,虽然现在的眼光看起来很 low ,但很少遇到这样的问题,一个大项目点击即可运行,真正做到了所开发即所得,而现在我 dev 和编译的居然都不一样。。。

感觉今天的问题可能是我自己的项目 a ,依赖了组件 b ,我当然可以强行指定 b 的特定版本,但 b 也可能依赖了 c 而且 c 没限定版本的话。。。谁敢保证更新后不出问题呢?更何况 c 还有可能依赖 d 。。。

回归正题,我不想升级 vue 版本的话,有没有办法强行限定所有依赖的版本进行依赖安装?

from V2EX-最新主题 https://ift.tt/oyL4vO6
V2EX-编译事故 感觉前端依赖管理太不省心了 顺便问问有什么优秀解决方案 - 第1张  | 牛C网(NiuL.Net)
官方群组:https://t.me/niuav
牛C网:https://j1o.net
牛C网导航:https://niuc1.com
零九导航:https://09.gay

最后编辑:
作者:分享菌
这个作者貌似有点懒,什么都没有留下。

留下一个回复