打算用自己搭建的V3项目脚手架parcel-vue-app开始一个项目。毕竟我才刚出来,很多东西都不是十全十美的,只能不断尝试。于是,使用parcel-vue-cli开始初始化项目(有朋友对parcel-vue-app感兴趣的,文末有源码地址)。...项目建好后,起始地址为http://localhost:3000/。经过短暂的操作,页面也能快速更新数据。不得不说Parcel在这方面做得非常好。所以这个时候我想到了友达开发的Vite,决定对比一下。于是进入vite官网,下载了vite@2.3.0,选择了vue模板。此时根据提示进入项目目录,然后运行yarndev命令启动项目。一眨眼就启动了,不得不说太给力了。这时,我看到了http://localhost:3000/这一行绿字,什么?我的第一感觉是vite没有端口号检测机制,没办法!不敢相信,于是开始寻找vite配置的官网。我在vite.config.js文件中添加了这些代码行。import{defineConfig}from'vite';importvuefrom'@vitejs/plugin-vue';//https://vitejs.dev/config/exportdefaultdefineConfig({plugins:[vue()],server:{port:3000,strictPort:真的,},});我指定服务器端口。官方还表示,如果端口已经被占用,Vite会自动尝试下一个可用的端口。另外,我不担心把strictPort设置为true,这样如果端口已经被占用了,它会直接退出,而不是去尝试下一个可用的端口。这个应该没问题!于是,我关闭了vite项目,重启,就看到了下图。于是,我还是不死心,先关闭parcel项目,再关闭vite项目。决定从头开始,首先我打开了之前创建的vite项目。vite项目之前的版本是2.0.4,心想版本不一样就好了,于是兴冲冲的启动了端口号3000的vite@2.0.4项目,然后启动了vite@2.3.0项目(其实是2.3.1,package.json和node_modules版本不一致,这里暂时忽略),然后就发生了下面的事情。当时的感觉就是,这种事情怎么会发生在我身上。我还是不死心,我会试试VueCLI和Vite对比一下。这里的vite项目使用的是vite@2.3.0,结果发现vite可以检测到并成功屏蔽。然后,我创建了一个vite@2.3.0项目,想看看同版本的项目会不会出现这种情况。然后,又启动了一个vite@2.0.5的项目,发现不是我们预期的3002端口,而是3000端口。于是感觉入坑了~,这可能是之前vite遗留下来的bug,现在新版本已经解决了。解决了一个疑惑,原来的疑惑还没有解决。是启动parcel2项目,vite项目(vite@2.3.0)检测不到parcel2已经占用端口。所以,我去github提了一个issue。https://github.com/vitejs/vite/issues/3391元洛提了一个issue,回复很快,bug已经确认。喜欢vite团队!这是回复:回复1:看起来parcel正在监听所有地址(如--host::)。Vite2.3改默认只监听127.0.0.1,同端口监听不会报错。如果您在vite中使用--host或--host::,您将获得与2.2相同的行为,并且它会如您预期的那样失败。您还可以将parcel设置为监听--host127.0.0.1并且还会出现硬错误。关于这个,我不知道Vite中是否应该修复一些东西。sirv-cli等其他工具也以相同的方式工作,并且不会识别在这种情况下使用的是3000。转换为:看起来parcel2正在监听所有地址(如--host::)。Vite2.3切换默认只监听127.0.0.1,所以在同一个端口监听不会报错。如果您在vite中使用--host或--host::,您将获得与2.2相同的行为,并且会按预期失败。您还可以将parcel2设置为监听--host127.0.0.1并且仍然会出现硬错误。我不知道Vite是否应该解决这个问题。sirv-cli等其他工具以相同的方式工作,在这种情况下不会识别使用3000。回复2:关于node.@maomincoding的端口重用问题,您可以将server.host指定为'::'作为临时解决方法。从1e604d5b60900098f201f90394445fea55642e74开始,httpServer会监听一个指定的默认主机,由此导致。节点的端口重用问题。@maomincoding您可以将server.host指定为“::”作为临时解决方法。由于1e604d5b60900098f201f90394445fea55642e74,httpServer将侦听导致此问题的指定默认主机。https://github.com/vitejs/vite/commit/1e604d5b60900098f201f90394445fea55642e74https://stackoverflow.com/questions/60217071/node-js-server-listens-to-the-same-port-on-0-0-0-0-and-localhost-without-error有了上面两个回复,我临时在parcel项目中使用了--host127.0.0.1来解决问题。并且,我更新了parcel-vue-app,最新版本v1.0.6。也感谢这次经历,让我的工具越来越好。其实不止上面两个回复,还有第三个回复。回复3为了以后,请不要直接pingEvan。我们有一个围绕Vite的活跃团队,每天都在处理/分类问题和PR,我们决定需要什么才能到达Evan,这样他就可以管理整个Vue生态系统中更高阶的东西。翻译为:在未来,请不要联系埃文直接。我们有一个活跃的团队,每天围绕Vite工作/分类问题和PR,我们决定需要什么来联系Evan,以便他可以管理整个Vue生态系统中更高级别的东西。以下是我的回复:对不起,以后不会了。我也算是前车之鉴了。以后大家提问题的时候,不要像我一样。...总结学好英语很重要!!!我主要用谷歌翻译~继续学习,说不定你会学到很多。你也要知道不要打扰别人,我就是一个反面例子。
