新项目跑不起来,人和项目总得有一个能跑

前言

  • 常网IT戳我呀!
  • 常网IT源码上线啦!
  • 本篇录入vue专栏,希望能祝君在新项目一臂之力,各位看官感兴趣可移步🚶。
  • 有人说面试造火箭,进去拧螺丝;其实个人觉得问的问题是项目中涉及的点 || 热门的技术栈都是很好的面试体验,不要是旁门左道冷门的知识,实际上并不会用到的。
  • 进入新公司或者接手新项目,都会遇到如何将项目跑起,跑不起的话,可能就得人跑了。

每个人的花期不同。

就像万特特在《这世界很好,你也不差》中讲的,每个人花期不同,不必焦虑有人比你提前拥有。

新项目跑不起来,人和项目总得有一个能跑

一、问题剖析

那是一个风和日丽的早上,我想要去看漫天霞光。

要和心上人手挽手走在街上,

清晨的花香,傍晚的夕阳。

正当我沉迷于甜蜜的幻想中,前同事发来:我遇到一个问题,帮我看看呗!

真是的,慌慌张张的,说吧~

问题是这样子的:

现在有一个新项目,B项目从A项目复制过去,在原有的功能上扩展。

我又多嘴的问了一句,为啥要复制一份过去啊!

他回道:因为现在要做国际化的需求,之前的项目没有考虑到,改起来很麻烦,打算先拷贝一份出来,通过java程序执行一下,先把大部分的先转化一下,这样子不会影响原本项目的开发。

我又对嘴了一下,开新分支不可以嘛!

他说:因为是给两个地区用的,可能在A页面,两个区的需求不同,改起来也麻烦,需求不同,就没必要硬写在一起了。

懂了!

二、gitlab仓库中有两种方式拉取代码仓库:ssh和https

新项目跑不起来,人和项目总得有一个能跑

ssh

首先,确保你已经在 GitLab 上配置了 SSH 密钥。如果没有,你需要生成 SSH 密钥并将公钥添加到 GitLab 的个人设置中。

https

使用 HTTPS 协议拉取代码需要输入你的 GitLab 用户名和密码,或者是访问令牌(Access Token)。

两者

  • 使用 SSH 协议可以避免频繁输入用户名和密码,但需要提前配置好 SSH 密钥。
  • 使用 HTTPS 协议在拉取代码时需要提供用户名和密码或者访问令牌,相对来说更加方便快捷。

一般来说,都是用https拉取仓库,但我怎么拉都拉不下来。

提示:

SSL certificate problem: self signed certificate

翻译:SSL证书问题:自签名证书

于是,我尝试运行ssh的方式拉取。

我们首先需要先生成秘钥

ssh-keygen -t rsa -C “your_email@youremail.com”  
// 命令中的email,就是gitlab中的账号,需要保持一致

直接三个Enter就行,然后会提示输入密码(可输可不输)

新项目跑不起来,人和项目总得有一个能跑

在~/.ssh/下会生成两个文件,id_rsa和id_rsa.pub

新项目跑不起来,人和项目总得有一个能跑

id_rsa是私钥

id_rsa.pub是公钥

在我们c盘的用户里面有个.ssh文件夹

C:\Users\Lenovo\.ssh

gitlab添加秘钥

新项目跑不起来,人和项目总得有一个能跑

这样子就配置好了,可以通过ssh方式拉取了。

git clone 项目远程仓库ssh地址

项目已拉取。

此时要推送的时候,一直让我输入密码,但我输入完之后,仍然要求输入。

我使用的是tortoisegit

连接gitlab,总是弹出git@xxx.com’s password 对话框

然后打开TortoiseGit设置,如下图进入相应页面,选择相对路径的ssh.exe文件

新项目跑不起来,人和项目总得有一个能跑

查找git在哪里,只需要输入 where git

新项目跑不起来,人和项目总得有一个能跑

到这里项目已经拉取,也能推送了。

接下来运行项目。

三、运行的时候,先安装依赖,发现npm安装失败。

发现npm i

新项目跑不起来,人和项目总得有一个能跑

于是,我尝试cnpm i安装,安装是可以安装,但npm run serve的时候还是报错了。

四、于是,我找同事要来了他本地的依赖,想着在我本地看看能不能跑起来。

但因我和同事的环境(npm、node)环境不一样。

于是,我和他保持一致的版本node:12

但又因为还是有些不同,npm run serve的时候,报了:

error  in ./src/styles/element-variables.scss  
Syntax Error: Error: Missing binary. See message above.

看起来是,sass的问题,于是想着重新安装一下

一般来说sass、node-sass问题经常会出现。

npm install --save-dev sass-loader node-sass

仍然不行,那切换一下node的版本,从node10-node14都轮流切换尝试都不行。

我使用的是nvm管理node版本。

新项目跑不起来,人和项目总得有一个能跑

但点进去看只有10.14.1版本有node_modules文件夹依赖

新项目跑不起来,人和项目总得有一个能跑

其他的版本貌似没有,本来想着和同事保持12版本的node,然后把他的依赖复制给我,但我本地的node12没有node_modules文件夹

关于上面的scss文件引起的:Syntax Error: Error: Missing binary. See message above.

下载fibers

运行的时候报错:而且会弹出框说:中止/忽略(其实是fibers缺少二进制文件执行)

Try running this to fix the issue: D:\Program Files\nodejs\node.exe E:\vue-project\node_modules\fibers/build
Error: Cannot find module 'E:\vue-project\node_modules\fibers\bin\win32-x64-83\fibers'
Require stack:

我们发现了fibers引起的错误

有回答说:

项目node_moudules/fibers/bin文件夹中没有win32-x64-83模块,缺少win32-x64-83文件夹下的fibers.node。

新项目跑不起来,人和项目总得有一个能跑

1.在github下载对应系统版本的node文件

win32-x64-83_binding.node 文件下载地址:github-releases

2.下载后的win32-x64-83_binding.node文件改名为fibers.node。

3.保存fibers.node在项目node_moudules/fibers/bin新建的win32-x64-83文件夹中。

4.然后重新执行run serve就可以

rebuild node-sass

执行

npm rebuild node-sass

如果提示 stack Error: EACCES: permission denied, mkdir 错误,则执行命令:

npm rebuild node-sass --unsafe-perm

失败告终!

但我简单粗暴直接把fibers文件夹给删除重新跑就可以了。(√)

五、后面想了一下,项目的背景,是从A项目复制过来的,那我把A项目的依赖复制过来运行下看看。

复制过来后,可以运行了,但因为B新项目装了vue-i18n国际化依赖,于是我安装一下,运行,终于可以了。

但项目打开页面的时候,还是报错了。

新项目跑不起来,人和项目总得有一个能跑

看起来,vue-router版本和i18n版本冲突了

我的解决办法是把i18n的版本 改为了 8.26.7 ,再启动项目就可以了

npm install vue-i18n@8.26.7 -S

虽然B项目的package.json写着是版本9的,但这不影响我运行。

只不过在页面用到这个依赖的时候可能会有一些不同。

完成搞定。

后记

那晚,我们一起找了家烧烤店,他说:今日之事,都在酒里了,一口闷。

道不清,理还乱,别是一般滋味在心头~

刚开始接手一个项目的时候,依赖啊,版本啊,什么的都很头疼,但一步一步来,见招拆招,无非就是node版本、npm版本、cnpm他们的故事。

如果有其他更好的方法也欢迎评论区见,这里提供的只是诸多方法之一。

我是Dignity_呱,来交个朋友呀,有朋自远方来,不亦乐乎呀!深夜末班车

👍 如果对您有帮助,您的点赞是我前进的润滑剂。

以往推荐

靓仔,说一下keep-alive缓存组件后怎么更新及原理?

面试官问我watch和computed的区别以及选择?

面试官问我new Vue阶段做了什么?

前端仔,快把dist部署到Nginx上

多图详解,一次性啃懂原型链(上万字)

Vue-Cli3搭建组件库

Vue实现动态路由(和面试官吹项目亮点)

项目中你不知道的Axios骚操作(手写核心原理、兼容性)

VuePress搭建项目组件文档

原文链接

juejin.cn/spost/73393…

原文链接:https://juejin.cn/post/7339376488028307456 作者:Dignity_呱

(0)
上一篇 2024年2月26日 上午10:00
下一篇 2024年2月26日 上午10:11

相关推荐

发表回复

登录后才能评论