首页 前端知识 记一次痛苦的项目部署经历(VITE&VUE&NPM&NODE部署踩坑指北)

记一次痛苦的项目部署经历(VITE&VUE&NPM&NODE部署踩坑指北)

2024-09-14 23:09:18 前端知识 前端哥 51 158 我要收藏

记一次痛苦的项目部署经历(VITE&VUE&NPM&NODE部署踩坑指北)

最近自己的轻薄本16G的内存做项目时完全不够用了,所以又配了一台64G的主机来写项目。

既然是用了双主机,当然要涉及到项目间的同步问题,之前还没有做过多设备的协同开发,所以在摸索的过程中今天踩了非常多非常多非常多的坑。

创建项目时git仓库的选择

这里是想同步之前开发的问卷管理系统的代码;

这是之前预期的项目结构

image-20240309213229994

结果成了这样

image-20240309213551045

我记得之前创建的时候,是直接用的Idea做的commit,当时是直接在外层的Project里面点的提交,然后又因为前端和后端,还有最外层的文件夹都是各算一个项目,这里的版本控制可以说是一团乱麻,这就导致我直接将我认为的项目的git本地仓库push到github时发现哥们我后端文件呢???

非常酸爽,我做了各种尝试

  • 试图将后端仓库的.git文件夹删掉; -> 无果,push之后虽然显示文件夹,但是点一下就404
  • 试图删除全部的.git,然后重新创建本地git再push,前端跑不起来寄了
  • 试图将整个项目先做一个git仓库,然后后端部分引用另一个git仓库(其实这也算一种解耦合?(笑。最后没找到这个引用方法,同时我作为全干开发的话,这样我都不知道怎么版本管理了。。。

最后做了下面的决定

先解决前端报错的问题

删除本地git仓库后,执行npm run dev 就会报如下的错误

[ERROR] Could not resolve "vue-demi"

pgsql
../node_modules/vue-echarts/dist/index.esm.min.js:1:216:
  1 │ ... as s,getCurrentInstance as c,onMounted as l,onBeforeUnmount as f,h as p,nextTick as v}from"vue-demi";import{throttle as d,init as h}from"echarts/core";import{addListener as g,removeListener ...
    ╵                                                                                               ~~~~~~~~~~
You can mark the path "vue-demi" as external to exclude it from the bundle, which will remove this
error.

X [ERROR] Could not resolve "resize-detector"

javascript
../node_modules/vue-echarts/dist/index.esm.min.js:1:325:
  1 │ ...ttle as d,init as h}from"echarts/core";import{addListener as g,removeListener as m}from"resize-detector";var O=function(){return O=Object.assign||function(e){for(var t,n=1,r=arguments.length;... 
    ╵                                                                                           ~~~~~~~~~~~~~~~~~
You can mark the path "resize-detector" as external to exclude it from the bundle, which will
remove this error.

按照道理来说,git应该只负责版本控制,把它的文件删了并不会影响程序的运行,但是他就是寄了,同一台电脑上,环境完全一致。

试了很多方法,疯狂的调npm,vite和vue的配置,然后把依赖包删了下下了删重复了很多次无果。

最后决定把在笔记本上能跑的代码先复制到主机上看能不能跑,结果不出所料,寄了

还是到处查解决办法,但好像这个问题独一家,就是没办法解决

最后折腾了五六个小时,突然想想是不是大的框架版本有问题

最后和能跑起来的程序分别比对了npm、vite、node的版本,果然不一样

有预感是找到大问题了,所以就照着网上的教学把他们的版本都改成和以前一样的版本

然后跑一下前端,发现已经进入了,点开不会跟之前一样直接error退出,而是给出提示框,显而易见是有一些依赖没有自动导入进来

就是把pinia,axios,element-plus手动安一下,前端程序就正常跑起来啦

后端部分

前端的部分暂时结局了,现在需要解决git仓库的问题了

直接删除项目中所有git文件,然后开启idea打开项目文件夹,发现前端和后端都没有被自动识别为模块,我手动将其添加到Project Settings的Modules中,但是前端能正常跑,而后端就各种报错,maven直接不识别后端的文件,导致所有依赖都没有被正常引入

原因经过漫长的尝试发现是因为之前直接引入了后端的文件夹

这时就会找不到启动类;Run/Debug Configuration中找不到SpringBoot项目等问题

image-20240311091402382

正确的做法是选中后端的pom.xml文件

image-20240311091455732

经过快几个周末的折腾成功传到了github上实现了两台电脑之间的代码同步,并且两边都能跑起来;虽然这不是个很复杂的活,但是这些坑真的很难避免 T T

今天的部署流程为总结以下经验

  • 创建项目的git仓库时要仔细仔细再仔细,多确认一下仓库的结构,不要跟这次一样搞了几个月最后得删掉重新部署

  • 与后端完备的SpringBoot项目不同,前端项目的部署对系统环境非常及其超级敏感,在部署的时候要注意版本

  • 在写前端的时候,尽量使用确定的版本,避免安装一时爽,部署火葬场!

    比如npm install pinia@1.8.21而不是npm install pinia

  • 导入项目时要导入正确的文件,比如SpingBoot要导入pom.xml文件

  • 使用git同步文件时要提前规划好gitignore文件的内容,避免上传过多无用的非必要代码部分

转载请注明出处或者链接地址:https://www.qianduange.cn//article/18279.html
标签
springbootgit
评论
发布的文章

HTML5 CSS3面试题整理

2024-05-05 22:05:21

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!