getting-started.md 3.4 KB
Newer Older
L
Luis Alvarez D 已提交
1
---
2
description: Get started with Next.js in the official documentation, and learn more about all our features!
L
Luis Alvarez D 已提交
3 4 5 6 7 8 9 10 11 12
---

# Getting Started

Welcome to the Next.js documentation!

If you're new to Next.js we recommend that you start with the [learn course](https://nextjs.org/learn/basics/getting-started).

The interactive course with quizzes will guide you through everything you need to know to use Next.js.

13 14
If you have questions about anything related to Next.js, you're always welcome to ask our community on [GitHub Discussions](https://github.com/zeit/next.js/discussions).

L
Luis Alvarez D 已提交
15 16
#### System Requirements

17
- [Node.js 10.13](https://nodejs.org/) or later
L
Luis Alvarez D 已提交
18 19 20 21
- MacOS, Windows (including WSL), and Linux are supported

## Setup

22 23 24
We recommend creating a new Next.js app using `create-next-app`, which sets up everything automatically for you. To create a project, run:

```bash
25
npx create-next-app
26 27 28 29 30 31 32 33
# or
yarn create next-app
```

After the installation is complete, follow the instructions to start the development server. Try editing `pages/index.js` and see the result on your browser.

## Manual Setup

L
Luis Alvarez D 已提交
34 35 36
Install `next`, `react` and `react-dom` in your project:

```bash
37
npm install next react react-dom
L
Luis Alvarez D 已提交
38 39
```

L
Luis Alvarez D 已提交
40
Open `package.json` and add the following `scripts`:
L
Luis Alvarez D 已提交
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55

```json
"scripts": {
  "dev": "next",
  "build": "next build",
  "start": "next start"
}
```

These scripts refer to the different stages of developing an application:

- `dev` - Runs `next` which starts Next.js in development mode
- `build` - Runs `next build` which builds the application for production usage
- `start` - Runs `next start` which starts a Next.js production server

56
Next.js is built around the concept of pages. A page is a [React Component](https://reactjs.org/docs/components-and-props.html) exported from a `.js`, `.jsx`, `.ts`, or `.tsx` file in the `pages` directory.
L
Luis Alvarez D 已提交
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78

Pages are associated with a route based on their file name. For example `pages/about.js` is mapped to `/about`. You can even add dynamic route parameters with the filename.

Create a `pages` directory inside your project.

Populate `./pages/index.js` with the following contents:

```jsx
function HomePage() {
  return <div>Welcome to Next.js!</div>
}

export default HomePage
```

To start developing your application run `npm run dev`. This starts the development server on `http://localhost:3000`.

Visit `http://localhost:3000` to view your application.

So far, we get:

- Automatic compilation and bundling (with webpack and babel)
79 80
- [React Fast Refresh](https://nextjs.org/blog/next-9-4#fast-refresh)
- [Static generation and server-side rendering](/docs/basic-features/data-fetching.md) of [`./pages/`](/docs/basic-features/pages.md)
L
Luis Alvarez D 已提交
81 82
- [Static file serving](/docs/basic-features/static-file-serving.md). `./public/` is mapped to `/`

83 84
In addition, any Next.js application is ready for production from the start, read more in our [Deployment documentation](/docs/deployment.md).

L
Luis Alvarez D 已提交
85 86 87 88 89 90 91
## Related

For more information on what to do next, we recommend the following sections:

<div class="card">
  <a href="/docs/basic-features/pages.md">
    <b>Pages:</b>
92
    <small>Learn more about what pages are in Next.js.</small>
L
Luis Alvarez D 已提交
93 94 95 96 97 98
  </a>
</div>

<div class="card">
  <a href="/docs/basic-features/built-in-css-support.md">
    <b>CSS Support:</b>
99
    <small>Use the built-in CSS support to add custom styles to your app.</small>
L
Luis Alvarez D 已提交
100 101
  </a>
</div>
102 103 104 105 106 107 108

<div class="card">
  <a href="/docs/api-reference/cli.md">
    <b>CLI:</b>
    <small>Learn more about the Next.js CLI.</small>
  </a>
</div>