Installation

Prerequisites

Using create-nuxt-app

To get started quickly you can use the create-nuxt-app.

Make sure you have npx installed (npx is shipped by default since NPM 5.2.0) or npm v6.1 or yarn.

yarn create nuxt-app <project-name>
npx create-nuxt-app <project-name>
npm init nuxt-app <project-name>

It will ask you some questions (name, Nuxt options, UI framework, TypeScript, linter, testing framework, etc. To find out more about all the options see the Create Nuxt app.

Once all questions are answered, it will install all the dependencies. The next step is to navigate to the project folder and launch it:

cd <project-name>
yarn dev
cd <project-name>
npm run dev

The application is now running on http://localhost:3000. Well done!

Another way to get started with Nuxt.js is to use CodeSandbox which is a great way for quickly playing around with Nuxt.js and/or sharing your code with other people.

Manual Installation

Creating a Nuxt.js project from scratch only requires one file and one directory.

We will use the terminal to create the directories and files, feel free to create them using your editor of choice.

Set up your project

Create an empty directory with the name of your project and navigate into it:

mkdir <project-name>
cd <project-name>

Replace <project-name> with the name of your project.

Create the package.json file:

touch package.json

Fill the content of your package.json with:

package.json
{
  "name": "my-app",
  "scripts": {
    "dev": "nuxt",
    "build": "nuxt build",
    "generate": "nuxt generate",
    "start": "nuxt start"
  }
}

scripts define Nuxt.js commands that will be launched with the command npm run <command> or yarn <command>.

What is a package.json file?

The package.json is like the ID card of your project. If you don't know what the package.json file is, we highly recommend you to have a quick read on the NPM documentation.

Install Nuxt

Once the package.json has been created, add nuxt to your project via npm or yarn like so below:

yarn add nuxt
npm install nuxt

This command will add nuxt as a dependency to your project and add it to your package.json. The node_modules directory will also be created which is where all your installed packages and dependencies are stored.

A yarn.lock or package-lock.json is also created which ensures a consistent install and compatible dependencies of your packages installed in your project.

Create your first page

Nuxt.js transforms every *.vue file inside the pages directory as a route for the application.

Create the pages directory in your project:

mkdir pages

Then, create an index.vue file in the pages directory:

touch pages/index.vue

It is important that this page is called index.vue as this will be the default home page Nuxt shows when the application opens.

Open the index.vue file in your editor and add the following content:

pages/index.vue
<template>
  <h1>Hello world!</h1>
</template>

Start the project

Run your project by typing one of the following commands below in your terminal:

yarn dev
npm run dev

We use the dev command when running our application in development mode.

The application is now running on http://localhost:3000.

Open it in your browser by clicking the link in your terminal and you should see the text "Hello World" we copied in the previous step.

When launching Nuxt.js in development mode, it will listen for file changes in most directories, so there is no need to restart the application when e.g. adding new pages

When you run the dev command it will create .nuxt folder. This folder should be ignored from version control. You can ignore files by creating a .gitignore file at the root level and adding .nuxt.

Bonus step

Create a page named fun.vue in the pages directory.

Add a <template></template> and include a heading with a funny sentence inside.

Then, go to your browser and see your new page on http://localhost:3000/fun.

Create a directory named more-fun and put an index.vue file inside. This will give the same result as creating a more-fun.vue file

Contributors

Caught a mistake or want to contribute to the documentation? Edit this page on GitHub!