部署到 Vercel - 我们可以部署在节点服务器中提供的 React 应用程序吗?

时间:2021-01-29 19:34:37

标签: node.js reactjs vercel

我的情况

我可以使用 vercel.json 将 API 部署到 Vercel 的生产环境中:

{
"builds": [{ "src": "backend-build/index.js", "use": "@now/node-server" }],
"routes": [
    {
        "src": "(.*)",
        "methods": ["GET", "POST", "PATCH", "DELETE", "OPTIONS"],
        "headers": {
            "Access-Control-Allow-Headers": "Origin, X-Requested-With, Content-Type, Accept",
            "Access-Control-Allow-Credentials": "true"
        },

        "dest": "backend-build/index.js",
        "continue": true
    }
]

}

这是我制作的 API 示例: https://kijiji-backend.vercel.app/api/test

问题

但是!尝试在 Node.js 中提供我的 React 构建文件夹(使用 React 的 npm run build 创建)时:

app.use("/api/test", (req, res) => {
    res.send("hi");
});

//Render React App
//All other roues will be handled by
app.use(express.static(path.join(__dirname, "build")));
app.get("*", function (req, res) {
    res.sendFile(path.join(__dirname, "build", "index.html"));
});

该网站实际上不会呈现任何 React(空白页面)。如这里所见: https://kijiji-backend.vercel.app

您可以在浏览器控制台中看到,有一个错误:

2.b2517795.chunk.js:1 Uncaught SyntaxError: Unexpected token '<'

这一切都在我的计算机本地运行,但是,当部署到 Vercel 时,React 不会呈现。

Vercel 日志: enter image description here

0 个答案:

没有答案