【发布时间】:2022-01-14 00:40:21
【问题描述】:
虽然我已经看到了很多关于 Vue3/Vite 的 SSR 的信息,但遗憾的是它并不那么容易。由于 work 古怪的 saml 设置,身份验证 API 在前端中断,但也不能位于单独的域中。我让它工作的唯一方法是在一个端口上运行节点服务器,在另一个端口上运行实际站点,然后它们读取为“相同域”,这样我就可以在成功登录后检索 cookie/令牌.
(6 年多后,我别无选择,只能接受扭曲前端代码比说服当权者找到更好的方法更容易。)
无论如何,我知道这是可以做到的。我的 Vue2/webpack 设置可以做到这一点,尽管它需要一个完整的 webpack conf/env/etc 文件。我想避免这种情况,也想避免 vue/cli 在第一次安装时出现 72+ 错误,所以我尝试了 vite——但现在我不知道如何让 vite 和 node 一起运行。
开箱即用的dev 脚本是:
"dev": "vite",
运行它让我在终端中得到了这个:
vite v2.7.10 dev server running at:
> Local: http://localhost:3000/
演示页面正确显示——但没有节点服务器。可能是因为服务器希望在端口 3000 上,并且期望 vue 应用程序在端口 8080 上。所以我将节点服务器更改为端口 5000,并且 config/index.js 将站点的端口设置为 3000。运行得到我:
vite v2.7.10 dev server running at:
> Local: http://localhost:3000/
这基本上没有变化——除了现在该站点提供一个空白页面和一个字符编码错误。我把订单改成了node server.js vite,我得到了:
[HPM] Proxy rewrite rule created: "^/api" ~> ""
zipzipzip on port 5000
这意味着节点服务器正在运行...除了 localhost:3000/ 给我一个Cannot GET / 错误,但是转到 localhost:5000/ 给我应用程序! ...这意味着它正在(再次)践踏节点服务器。
呃。
如果您需要真正共享舞台的东西,vite 是不是一个糟糕的选择?我是否需要回到 vue/cli 并与它无穷无尽的错误作斗争?还是我应该坚持使用 vue2 安装中复杂的 webpack 设置,然后选择性地更新一些东西以将 vue3 硬塞进去?
让 vue3 应用程序占据前台而节点服务器(位于同一域中)在后台处理 api 调用的最佳选择是什么?
提前致谢!
【问题讨论】:
标签: node.js express vuejs3 vite