写在开头前端灵魂拷问:同样的项目,同样的代码,在别人的电脑上都能跑,为什么不能在自己的电脑上跑?同样的项目,同样的代码,在别人的电脑上打包构建,为什么不在服务器上呢?老司机Peter这次就带大家深入分析一下这个问题。是什么原因?通常有不止一个原因。可能你当时有问题,比如姿势不对,或者环境问题,或者同事操作不规范等等,下面一一说说。看之前记得关注一下来博:原罪之一:通过npm/yarn等包管理器安装npm/yarn等非标准前端依赖时,没有锁定版本。比如同事安装依赖的时候:yarnaddreact--save那么这个版本到底是什么?众所周知,在react18版本之前,两个react是不能同时存在的,否则会报错,直接白屏。同事使用yarn安装react时,会生成一个yarn.lock文件,用于锁定安装的react版本信息。但是这个时候你clone代码,使用npm安装,然后启动项目,发现项目本身的react版本和其他第三方库的react版本不兼容。这时候,你就跑不动了。因此:对于多人开发协作,需要统一包管理器,统一使用一个锁文件,使用git管理这个文件来锁住依赖的安装版本。另外,安装依赖的时候尽量锁版本,例如:yarnaddreact@16.18.0--save也是一样:当你构建机器和本地开发机器使用的命令不一样的时候,就会出现这个问题也可能导致,比如在本地使用yarninstall,在构建机上使用npminstas。第二个原罪:Node.js版本不一致。其中大部分是基于Node.js环境的。node.js的版本发布和升级非常快。新旧版本的API不兼容是正常的。比如你的电脑是16版本的nodejs,装的是较新版本的webpack,可以正常使用,但是一旦自己搭建了机器,或者找同事用旧版本的电脑,就可以了运行它。推荐使用nvm来管理node.js的版本,这样电脑上会有多个nodejs版本。第三个原罪:特殊的环境配置。例如,计算机上缺少主机配置。项目本身需要在特定的主机上运行,??但是你的电脑没有写配置,会导致项目无法启动。第四个原罪:具体依赖源无法下载。这个要看情况:一种是真正的源在国外,比较慢,经常会超时,无法下载,无法启动(比如前端安装node-sass的时候),你可以指定源地址为淘宝镜像:npminstall-gmirror-config-china--registry=http://registry.npm.taobao.orgnpminstallsass-loadernode-sass-D第二个是private图片来源受保护,公网无权限访问。安装的时候控制台报401,需要开通公司VPN。原罪五:特定的依赖下载下来编译了半天,或者无法编译。这个时候你只需要执行这条命令安装python环境npminstall--global--productionwindows-build-tools跨平台开发,Mac电脑是首选,提前为你解决了很多环境问题原罪6:端口被占用在外面,可以同时启动多个项目,例如:项目占用8080端口后,再启动项目,会报端口被两次占用.这时候需要调整端口才能启动。结束语相信通过这六点总结,你可以解决大部分项目中相同代码无法运行的问题。你要知道,如果项目能在别人的电脑上运行,你的电脑也一定能。如果不是,就是你的姿势问题,记得帮帮我公众号:来到前端高峰:在看/点赞/关注
