Skip to content
This repository has been archived by the owner on Apr 6, 2023. It is now read-only.

Commit

Permalink
Merge remote-tracking branch 'origin/HEAD'
Browse files Browse the repository at this point in the history
  • Loading branch information
huang-julien committed Oct 3, 2022
1 parent 966d6ab commit 3f0fa07
Show file tree
Hide file tree
Showing 297 changed files with 4,349 additions and 2,827 deletions.
32 changes: 32 additions & 0 deletions .github/workflows/docs-e2e.yml
@@ -0,0 +1,32 @@
name: docs-e2e

on:
workflow_dispatch:
inputs:
url:
required: false
description: The URL to run the test suite against.
type: string
deployment_status:

jobs:
crawl-docs:
environment:
name: ${{ github.event.deployment.environment || 'Production' }}
url: ${{ github.event.inputs.url || github.event.deployment.payload.web_url || github.event.deployment_status.target_url }}
if: github.event.deployment_status.state == 'success' || github.event_name == 'workflow_dispatch'
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node }}
cache: "yarn"

- name: Install dependencies
run: yarn --immutable

- run: node ./scripts/crawl.mjs
env:
BASE_URL: ${{ github.event.inputs.url || github.event.deployment.payload.web_url || github.event.deployment_status.target_url }}
1 change: 1 addition & 0 deletions docs/.gitignore
@@ -1,2 +1,3 @@
schema
**/*.configuration/nuxt.config.md
**/*.configuration/nuxt-config.md
Expand Up @@ -42,7 +42,7 @@ Nuxt is the backbone of your Vue.js project, giving structure to build your proj
Extendable with a strong module ecosystem and hooks engine, it makes it easy to connect your REST or GraphQL endpoints, favorite CMS, CSS frameworks and more. PWA and AMP support is only a module away from your Nuxt project.

::alert{type=info icon=👍}
Ready to try? Head over to the [Installation section](/getting-started/quick-start).
Ready to try? Head over to the [Installation section](/getting-started/installation).
::

### Are You *Courageously* Nuxt?
Expand Down
145 changes: 145 additions & 0 deletions docs/content/1.getting-started/10.deployment.md
@@ -0,0 +1,145 @@
# Deployment

A Nuxt application can be deployed on a Node.js server, pre-rendered for static hosting, or deployed to serverless or edge (CDN) environments.

::alert{type=info}
If you are looking for a list of cloud providers that support Nuxt 3, see the [list below](#supported-hosting-providers).
::

## Node.js Server

Discover the Node.js server preset with Nitro to deploy on any Node hosting.

::list

- **Default output format** if none is specified or auto-detected <br>
- Loads only the required chunks to render the request for optimal cold start timing <br>
- Useful for deploying Nuxt apps to any Node.js hosting
::

### Entry Point

When running `nuxt build` with the Node server preset, the result will be an entry point that launches a ready-to-run Node server.

```bash
node .output/server/index.mjs
```

### Example

```bash
$ node .output/server/index.mjs
Listening on http://localhost:3000
```

### Configuring Defaults at Runtime

This preset will respect the following runtime environment variables:

- `NITRO_PORT` or `PORT` (defaults to `3000`)
- `NITRO_HOST` or `HOST` (defaults to `'0.0.0.0'`)
- `NITRO_SSL_CERT` and `NITRO_SSL_KEY` - if both are present, this will launch the server in HTTPS mode. In the vast majority of cases, this should not be used other than for testing, and the Nitro server should be run behind a reverse proxy like nginx or Cloudflare which terminates SSL.

#### Using PM2

To use `pm2`, use an `ecosystem.config.js`:

```js [ecosystem.config.js]
module.exports = {
apps: [
{
name: 'NuxtAppName',
exec_mode: 'cluster',
instances: 'max',
script: './.output/server/index.mjs'
}
]
}
```

#### Using Cluster Mode

You can use `NITRO_PRESET=node_cluster` in order to leverage multi-process performance using Node.js [cluster](https://nodejs.org/dist/latest/docs/api/cluster.html) module.

By default, the workload gets distributed to the workers with the round robin strategy.

### Learn More

:ReadMore{link="https://nitro.unjs.io/deploy/node" title="the Nitro documentation for node-server preset"}

## Static Hosting

There are two ways to deploy a Nuxt application to any static hosting services:

- Static site generation (SSG) pre-renders routes of your application at build time.
- Using `ssr: false` to produce a pure client-side output.

### Crawl-based Pre-rendering

Use the [`nuxi generate` command](/api/commands/generate) to build your application. For every page, Nuxt uses a crawler to generate a corresponding HTML and payload files. The built files will be generated in the `.output/public` directory.

```bash
npx nuxi generate
```

### Manual Pre-rendering

You can manually specify routes that [Nitro](/guide/concepts/server-engine) will fetch and pre-render during the build.

```ts [nuxt.config.ts|js]
defineNuxtConfig({
nitro: {
prerender: {
routes: ['/user/1', '/user/2']
}
}
})
```

### Client-side Only Rendering

If you don't want to pre-render your routes, another way of using static hosting is to set the `ssr` property to `false` in the `nuxt.config` file. The `nuxi generate` command will then output an `.output/public/index.html` entrypoint and JavaScript bundles like a classic client-side Vue.js application.

```ts [nuxt.config.ts|js]
defineNuxtConfig({
ssr: false
})
```

## Presets

In addition to Node.js servers and static hosting services, a Nuxt 3 project can be deployed with several well-tested presets and minimal amount of configuration.

You can explicitly set the desired preset in the [`nuxt.config`](/guide/directory-structure/nuxt.config) file:

```js [nuxt.config.js|ts]
export default {
nitro: {
preset: 'node-server'
}
}
```

... or use the `NITRO_PRESET` environment variable when running `nuxt build`:

```bash
NITRO_PRESET=node-server nuxt build
```

🔎 Check [the Nitro deployment](https://nitro.unjs.io/deploy) for all possible deployment presets and providers.

### Supported Hosting Providers

Nuxt 3 can be deployed to several cloud providers with a minimal amount of configuration:

- :IconCloud{class="h-5 w-4 inline mb-2"} [AWS](https://nitro.unjs.io/deploy/providers/aws)
- :LogoAzure{class="h-5 w-4 inline mb-2"} [Azure](https://nitro.unjs.io/deploy/providers/azure)
- :LogoCloudFlare{class="h-5 w-4 inline mb-2"} [CloudFlare](https://nitro.unjs.io/deploy/providers/cloudflare)
- :IconCloud{class="h-5 w-4 inline mb-2"} [Digital Ocean](https://nitro.unjs.io/deploy/providers/digitalocean)
- :LogoFirebase{class="h-5 w-4 inline mb-2"} [Firebase](https://nitro.unjs.io/deploy/providers/firebase)
- :IconCloud{class="h-5 w-4 inline mb-2"} [heroku](https://nitro.unjs.io/deploy/providers/heroku)
- :IconCloud{class="h-5 w-4 inline mb-2"} [layer0](https://nitro.unjs.io/deploy/providers/layer0)
- :LogoNetlify{class="h-5 w-4 inline mb-2"} [Netlify](https://nitro.unjs.io/deploy/providers/netlify)
- :IconCloud{class="h-5 w-4 inline mb-2"} [Render](https://nitro.unjs.io/deploy/providers/render)
- :IconCloud{class="h-5 w-4 inline mb-2"} [Stormkit](https://nitro.unjs.io/deploy/providers/stormkit)
- :LogoVercel{class="h-5 w-4 inline mb-2"} [Vercel](https://nitro.unjs.io/deploy/providers/vercel)
59 changes: 59 additions & 0 deletions docs/content/1.getting-started/10.upgrade.md
@@ -0,0 +1,59 @@
# Upgrade Guide

Have a Nuxt 2 project to migrate? Use these guides to upgrade your Nuxt applications to Nuxt 3 or take the first step in that direction with Nuxt Bridge.

If you are already using Nuxt 3 and want to upgrade to the latest release or test new features before their release, head over to the [Upgrading Nuxt 3](#upgrading-nuxt-3) section.

## Feature Comparison

In the table below, there is a quick comparison between 3 versions of Nuxt:

Feature / Version | Nuxt 2 | Nuxt Bridge | Nuxt 3
-------------------------|-----------------|------------------|---------
Vue | 2 | 2 | 3
Stability | 😊 Stable | 😌 Semi-stable | Release candidate
Performance | 🏎 Fast | ✈️ Faster | 🚀 Fastest
Nitro Engine | ❌ | ✅ | ✅
ESM support | 🌙 Partial | 👍 Better | ✅
TypeScript | ☑️ Opt-in | 🚧 Partial | ✅
Composition API | ❌ | 🚧 Partial | ✅
Options API | ✅ | ✅ | ✅
Components Auto Import | ✅ | ✅ | ✅
`<script setup>` syntax | ❌ | 🚧 Partial | ✅
Auto Imports | ❌ | ✅ | ✅
Webpack | 4 | 4 | 5
Vite | ⚠️ Partial | 🚧 Partial | ✅
Nuxi CLI | ❌ Old | ✅ nuxi | ✅ nuxi
Static sites | ✅ | ✅ | ✅

## Nuxt 2 to Nuxt 3

The migration guide provides a step-by-step comparison of Nuxt 2 features to Nuxt 3 features and guidance to adapt your current application.

::alert{type=info icon=👉}
[**Migrate from From Nuxt 2 to Nuxt 3**](/migration/overview)
::

## Nuxt 2 to Nuxt Bridge

If you prefer to progressively migrate your Nuxt 2 application to Nuxt 3, you can use Nuxt Bridge. Nuxt Bridge is a compatibility layer that allows you to use Nuxt 3 features in Nuxt 2 with an opt-in mechanism.

::alert{type=info icon=👉}
[**Migrate from Nuxt 2 to Nuxt Bridge**](/bridge/overview)
::

## Upgrading Nuxt 3

### Latest release

To upgrade Nuxt 3 to the latest release, use the `nuxi upgrade` command.

```bash
npx nuxi upgrade
```

### Edge release channel

::alert{type=info icon=👉}
To use the latest Nuxt 3 build and test features before their release, read the [edge release channel](/guide/going-further/edge-channel) guide.
::
@@ -1,4 +1,4 @@
# Quick Start
# Installation

Starting fresh? Getting started with Nuxt 3 is straightforward!

Expand Down Expand Up @@ -104,4 +104,3 @@ Well done! A browser window should automatically open for <http://localhost:3000
Now that you've created your Nuxt 3 project, you are ready to start building your application.

* Learn about the framework [concepts](/guide/concepts)
* Learn more about the framework [features](/guide/features)
28 changes: 0 additions & 28 deletions docs/content/1.getting-started/2.migration.md

This file was deleted.

0 comments on commit 3f0fa07

Please sign in to comment.