Стартовый шаблон для быстрого создания проектов на Next.js
nvm install # устанавливает нужную версию node из .nvmrc
nvm use # выбирает необходимую версию node из .nvmrc
yarn # установка зависимостей
yarn "<task>" # запуск сценария
# <dev>, <build>
yarn dev
- запуск dev сборки для разработки проектаyarn build
- Production сборка проектаyarn start
- запуск Production сборки проектаyarn export
- Сборка статического проекта (Файлы собираются в папкуout
)yarn lint
- Проверка ESlint
name-project
├── pages
│ ├── api
├── public
│ ├── images
│ ├── fonts
├── src
│ ├── components
│ │ ├── common
│ │ ├── pages
│ ├── hooks
│ ├── utils
│ ├── stubs
│ ├── styles
│ ├── constants
├── .env.sample
├── next.config.js
├── package.json
├── .eslintrc.json
├── .stylelintrc.json
├── .jsconfig.json
└── .gitignore
-
Корень папки:
public
— Статичные файлы проекта (картинки, шрифты и т.д.)public/images
— Статичные изображенияpublic/fonts
— Шрифтыpages
— Файлы (компоненты) страниц Next.js (Читать подробнее)pages/api
— Api роутинг Next.js (Читать подробнее).env.sample
— Переменные окружения проекта (Читать подробнее)next.config.js
— Файл конфигурации Next.js.eslintrc.json
— настройки ESLint.gitignore
– запрет на отслеживание файлов Git'ом.stylelintrc.json
— настройки Stylelintpackage.json
— список зависимостей.jsconfig.json
- настройка путей импортов в проекте
-
Папка
src
- используется во время разработки:- Компоненты:
src/components
- Глобальные компоненты:
src/components/common
- Компоненты страниц:
src/components/pages
- Утилки (вспомогательные функции):
src/utils
- Кастомные хуки:
src/hooks
- Stub данные (мокапы данных):
src/stubs
- Глобальные стили проекта:
src/styles
- Константы проекта:
src/сonstants
- Компоненты:
-
import стороних библиотек
-
import hooks/utils
-
import внешних компонентов
-
import внутренних компонентов
-
import стилей
-
константы
import { ... } from 'react'; import cx from 'classnames'; import { string } from 'prop-types'; ... import util from 'utils/util'; import hook from 'hooks/hook'; ... import Button from 'components/Button'; ... import Item from './Item'; ... import s from './Component.module.scss'; const NUMBER = 10; ... const Component = ({ className }) => { return ( <Button className={cx(s.root, className)}> <Item /> </Button> ) } Component.propTypes = { className: string, }; export default Component;
- шрифты находятся в папке
public/fonts
- используйте форматы
.woff
и.woff2
- шрифты подключаются в файл
src/styles/fonts.scss
- используйте форматы
- изображения находятся в папке
public/images