【问题标题】:Running Vue3/Vite with backend-ish node server使用后端节点服务器运行 Vue3/Vite
【发布时间】: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


    【解决方案1】:

    看,我现在正在学习 R,所以这就是本周完全忽略明显内容的借口:

    "prod": "NODE_ENV=production & webpack --config build/webpack.config.prod.js",
    "start": "node server.js"
    

    也就是说:在生产中,一切都来自 /dist 文件夹。并且由于 dockerfile 中没有基于 env 变量的逻辑,所以 prod 是所有可以运行的,然后是 start。因此 vue 被扁平化为 /dist,而 /dist 由节点服务器提供服务。

    但是当在本地工作时(并且不需要重写节点服务器,因为身份验证过程已经很好地解决了),vite 服务器会即时编译和提供服务。当然。

    短版:什么都不做,没关系。

    这就像 vue 101,你会认为在 vue 工作几年后,我现在已经把它放下了。

    显然你错了。

    【讨论】:

      猜你喜欢
      • 2020-03-06
      • 1970-01-01
      • 2020-11-17
      • 1970-01-01
      • 2014-09-03
      • 2022-07-06
      • 1970-01-01
      • 2013-12-11
      • 1970-01-01
      相关资源
      最近更新 更多