Создание сайта на Next.js с использованием .env
файла
Вот пошаговая инструкция для создания сайта на Next.js с настройкой .env
файла, где указан порт 80
и API-доступ через переменную NEXT_PUBLIC_BACKEND_URL
.
1. Установка Next.js
Сначала создайте новый проект Next.js. Для этого выполните следующую команду в терминале:
bash
npx create-next-app my-next-app
Перейдите в созданную папку:
bash
cd my-next-app
2. Создание .env
файла
Создайте файл .env
в корне проекта и добавьте в него следующие строки:
javascript
PORT=80
NEXT_PUBLIC_BACKEND_URL="http://localhost:3000/api"
Примечание: Переменные, начинающиеся с NEXT_PUBLIC_
, автоматически становятся доступными на стороне клиента в Next.js.
3. Настройка порта
По умолчанию Next.js запускается на порту 3000
. Чтобы изменить порт на 80
, можно использовать переменную окружения PORT
. Для этого добавьте в package.json
следующую команду в секцию scripts
:
json
"scripts": {
"dev": "PORT=80 next dev",
"build": "next build",
"start": "next start"
}
Теперь команда npm run dev
будет запускать сервер на порту 80
.
4. Создание API-эндпоинта
Создайте папку pages/api
(если её ещё нет) и добавьте файл hello.js
:
javascript
export default function handler(req, res) {
res.status(200).json({ message: 'Hello from API!' });
}
Этот эндпоинт будет доступен по адресу http://localhost:3000/api/hello
.
5. Использование переменной NEXT_PUBLIC_BACKEND_URL
Теперь вы можете использовать переменную NEXT_PUBLIC_BACKEND_URL
в вашем приложении. Например, создадим компонент, который делает запрос к API:
javascript
import { useEffect, useState } from 'react';
export default function Home() {
const [data, setData] = useState(null);
useEffect(() => {
fetch(`${process.env.NEXT_PUBLIC_BACKEND_URL}/hello`)
.then((response) => response.json())
.then((data) => setData(data));
}, []);
return (
<div>
<h1>Next.js App</h1>
<p>API Response: {data ? data.message : 'Loading...'}</p>
</div>
);
}
6. Запуск приложения
Запустите приложение с помощью команды:
bash
npm run dev
Теперь приложение будет доступно по адресу http://localhost
(порт 80
).
7. Дополнительные настройки
Если порт 80
недоступен (например, из-за ограничений прав доступа), вы можете использовать sudo
для запуска:
bash
sudo npm run dev
Теперь у вас есть базовый сайт на Next.js с настройкой .env
файла и API-доступом! 🎉