Вы катаете CRA? Хотите понять основы Webpack и узнать, как настроить среду разработки для React с нуля? Webpack может показаться пугающим, но это не так, и это должно помочь. Есть несколько отличных курсов по Webpack. Это сделано для того, чтобы вы начали.
Если вы новичок в React и только начинаете, я бы посоветовал обратиться к create-react-app или Gatsby. Это предназначено для тех, кто хочет попробовать свои силы и узнать немного больше о Webpack и Babel. Это также предполагает, что вы знакомы с интерфейсом командной строки.
Настраивать
Из интерфейса командной строки создайте новый каталог для вашего нового проекта (например, react-starter)
mkdir react-starter
Поменяйте каталоги в новый проект
cd react-starter
Настройка управления пакетами
Инициализируйте свой проект, запустив yarn init
и ответив на вопросы в интерфейсе командной строки. См. Пример package.json.
yarn init
name (react-starter): Нажмите Enter или введите имя вашего проекта
версия (1.0.0): Нажмите Enter или установите версию по вашему выбору
описание: Выбор за вами
точка входа: index.jsx
URL-адрес репозитория: Если возможно, введите URL удаленного репозитория
автор: Это ваша
лицензия (MIT): Нажмите Enter или БЕЗ ЛИЦЕНЗИИ
private : Boolean - истина или ложь
В текущем каталоге будет создан новый package.json
файл.
Контроль версий (необязательно)
Теперь давайте инициализируем Git для контроля версий
git init
После инициализации вам нужно создать .gitignore
файл в корне проекта и начать с добавления node_modules/
и build/
. Вы также можете добавить другие файлы, которые вам не нужны в репозитории (например, .vscode).
Webpack
Во-первых, нам нужно установить некоторые Webpack и связанные / необходимые пакеты.
yarn add -D webpack webpack-command webpack-dev-server webpack-merge html-webpack-plugin path uglifyjs-webpack-plugin extract-text-webpack-plugin@next react-hot-loader file-loader style-loader css-loader
Теперь создайте папку config
в корневом каталоге проекта и cd
в нее.
mkdir config cd config
Внутри папки config нам нужно создать пять новых файлов. Имена файлов не требуют пояснений.
touch webpack-dev-config.js webpack-prod-config.js webpack-common-config.js webpack-dev-server.js paths.js
Используя ваш любимый текстовый редактор, давайте начнем с конфигурационного файла paths.js. Пути экспортируют некоторые переменные пути, которые мы будем использовать в других файлах конфигурации и сервера Webpack.
Далее идет сервер разработки. Dev-сервер отвечает за локальный запуск вашего проекта. Мы добавим удобные функции, такие как горячая перезагрузка и watchContentBase, для лучшего опыта разработки. Есть много других вариантов, это лишь некоторые из ключевых. См. Встроенные комментарии и официальную документацию.
Теперь создадим наш webpack-common-config.js. Этот файл будет содержать данные конфигурации, которые используются совместно разработанной и производственной сборками. См. Встроенные комментарии.
⚠️ Псевдонимы могут стать немного сложными, когда мы начнем добавлять ESLint, Flow и другие. ESLint будет жаловаться на путь, если он не указан в настройках импорта конфигурации Webpack.
Webpack-dev-config.js содержит данные конфигурации, относящиеся именно к разрабатываемой сборке. См. Встроенные комментарии.
Наконец, производственная конфигурация. Этот файл содержит данные конфигурации, относящиеся к производственной сборке.
Вавилон
Мы используем Babel для транспиляции JavaScript. Добавим необходимые пакеты.
yarn add -D @babel/core @babel/polyfill @babel/preset-env @babel/preset-react babel-loader
Далее нам нужно создать .babelrc
файл в корне проекта. В этом файле мы настроим пресеты и плагины babel.
@babel/preset-env
- это интеллектуальная предустановка, которая позволяет вам использовать последнюю версию JavaScript без необходимости микроуправления тем, какие синтаксические преобразования необходимы вашей целевой среде.
Если вы собираетесь использовать предлагаемые функции, такие как отдых, распространение и статические свойства класса, вы также захотите добавить сюда эти плагины.
yarn add -D @babel/plugin-proposal-object-rest-spread yarn add -D @babel/plugin-proposal-class-properties
Реагировать
Теперь, когда наша среда разработки настроена, давайте добавим React в проект с помощью Yarn.
yarn add react react-dom
Теперь о некоторых начальных файлах. Давайте создадим новый каталог с именем src
в корне проекта. В каталоге src
создадим файлы индекса и приложения.
index.html
index.jsx
app.jsx
ℹ️ Мы импортируем нашу таблицу стилейapp.css
как «стиль» и используем ее для имени класса как className={style.app}
. .app
- имя класса, определенное в таблице стилей.
Наконец, давайте добавим немного стартера CSS для тестирования. Создайте другой файл в каталоге src
, вызовите app.css
и вставьте следующее или что угодно. Просто имейте в виду, что в app.jsx
мы ссылаемся на класс .app
.
Теперь давайте добавим несколько скриптов в наш файл package.json. Вот полный пример package.json.
На этом этапе мы можем запустить сервер разработки.
yarn start:dev
Вы должны увидеть, что сервер dev работает: http: // localhost: 3000 или любой другой порт, который вы выбрали. Вы также должны увидеть вывод компилятора. Откройте браузер и посмотрите.
Если вы хотите отключить вывод компилятора, установите noInfo: true
в файле webpack-dev-server.js
.
Готов к строительству
Теперь мы можем просто запустить yarn build
, и Webpack поместит код пакета в каталог сборки.
Если вы хотите запустить производственный код локально, установите serve
и запустите yarn start:prod
yarn add -D serve yarn start:prod
Это все. Надеюсь, вы нашли это полезным и узнали, как легко использовать Webpack и Babel. Для справки: заполненный код можно найти здесь.
Линтинг?
Чтобы добавить линтинг с помощью ESLint, ознакомьтесь с Линтингом и форматированием Javascript с помощью ESLint, Prettier и Airbnb, который начинается с того места, где мы закончили.