是否可以在 Vercel 中部署 NodeJs 应用程序?

Nuz*_*icK 20 javascript node.js

我正在尝试从 CLI在 Vercel(https://vercel.com,现在之前)部署 API(在 Node 中制作)。但是当我部署应用程序时,我打开站点,结果只是路径目录中的文件,而不是运行的应用程序。这是我的server.js

    {
  "name": "subtitles-api",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "start": "node server.js",
    "pre-deploy": "node deleteLastDeploy.js",
    "deploy": "npm run pre-deploy && now --public && now alias",
    "test": "echo \"Error: no test specified\" && exit 1"
  }
  "engines": {
    "node": ">=6.9"
  },
  "keywords": [],
  "author": "",
  "license": "MIT",
  "dependencies": {
    //list of dependencies
  }
}
Run Code Online (Sandbox Code Playgroud)

查看完整的 API:https : //github.com/bitflix-official/subtitles-api

Vj *_*hek 25

运行 yarn global add now@latest以安装 CLI

  1. 创建一个now.json文件并粘贴这个
{
  "version": 2,
  "builds": [{
    "src": "./server.js",
    "use": "@now/node-server"
  }],
  "routes": [{"handle": "filesystem"},
    {
      "src": "/.*",
      "dest": "server.js"
    }
  ]
}

Run Code Online (Sandbox Code Playgroud)

注意:将"src": "server.js",&&更改"dest":"server.js"为您的服务器条目文件。

  1. 添加到 .gitignore

  2. 然后now在 CLI 中运行进行部署。

如果您要部署到生产环境now --prod,请在 CLI 中使用命令进行部署

这是我部署的示例服务器:https://vercel-example-server.now.sh


Aka*_*nja 18

在听说 Heroku 不再提供免费套餐后,我刚刚部署了一个 node.js 应用程序(2022 年 9 月 13 日)。

编辑:截至 (03-09-2023) 仍然有效

这些是我执行的步骤

1)创建一个 vercel.json 并添加它

{
  "version": 2,
  "builds": [
    {
      "src": "./index.js",
      "use": "@vercel/node"
    }
  ],
  "routes": [
    
    {
      "src": "/(.*)",
      "dest": "/"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

2)转到您的package.json并添加引擎列

{
  "name": "api-make",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "engines": {
    "node": "14.x"
  },
Run Code Online (Sandbox Code Playgroud)

3)不要忘记将脚本中的“start”更改为您的文件名

 "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "node index.js"
  },
Run Code Online (Sandbox Code Playgroud)

现在你可以开始了 注意:我不知道为什么,但我的文件名为 app.js 我收到了 404 错误 我确实在所有地方将其更改为 app.js 但我仍然不确定,所以我不得不将其改回index.js

  • 谢谢你的提示!重命名“app.js”=>“index.js”(并更新对它的所有引用)后,我还摆脱了 404 错误。 (2认同)

小智 7

目前,使用 Vercel 不可能拥有依赖于 Node.js 的服务器运行的 Web 应用程序。

Vercel是一个用于静态前端和无服务器功能的云平台。

为了使用 Vercel 部署节点 API,您需要使用它们的无服务器功能