Nuxt3 is currently in beta, and we received a way to write API routes as you do in NextJS. However, I didn't find a way to deploy it to Vercel, their documentation is only specifying how to deploy it as a static app.
After some research, it seems it is not that hard. Here are the steps that you can follow to do it yourself:
Step 1 - Create a Nuxt3 project
Create a new Nuxt3 app using:
npx nuxi init nuxt3-vercel
After that, cd into that directory and install the dependencies:
cd nuxt3-vercel # Using NPM npm install # Using Yarn yarn install
Step 2 - Create the API route and configure Nuxt.
Create a server folder. Inside that, an API folder with hello.ts
. Copy the next snippet inside:
import type { IncomingMessage, ServerResponse } from "http"; export default async (req: IncomingMessage, res: ServerResponse) => { res.statusCode = 200; const result = { data: "Hello world!", }; res.end(JSON.stringify(result)); };
The folder structure should be now:
📦nuxt3-vercel ┣ 📂node_modules ┣ 📂server ┃ ┗ 📂api ┃ ┗ 📜hello.ts ┣ 📜.gitignore ┣ 📜app.vue ┣ 📜nuxt.config.ts ┣ 📜package.json ┣ 📜README.md ┣ 📜tsconfig.json
Now, go to nuxt.config.ts
and add the following:
import { defineNuxtConfig } from "nuxt3"; // https://v3.nuxtjs.org/docs/directory-structure/nuxt.config export default defineNuxtConfig({ nitro: { preset: "vercel", }, });
You can start your project by doing yarn dev
or npm run dev
, and you go to http://localhost:3000/api/hello
you will see the response from our function 😊.
Step 3 - Pushing our code to GitHub ( you can go to step 4 if you already know how to do this )
First, you need to login to your profile on GitHub and press create a new repo near your profile:
After that, you select a name for your repo and press the create button:
In the end, you can follow the instructions from the screen:
For example:
git add .
git commit -m "init"
git remote add origin https://github.com/mihaiandrei97/nuxt3-vercel-deploy.git
git branch -M main
git push -u origin main
Step 4 - Deploying to Vercel
Login to Vercel and press New project
.
After that, select your repo and press Import
.
Now, the most important step is the section Build and output settings
. The build command
should be yarn build
or npm run build
, depending on what you choose at the start of the project. The output directory
needs to be .vercel_build_output
(don't miss the dot here).
In the end, hit deploy, and voilà 🔥. The site is deployed.
Top comments (3)
Good article on deployment of nuxt3. Helped me deploy the app easily. Thank you :)
Glad I could help!
Thanks very much,it is very useful.