Первоначально опубликовано на https://jrichardsz.github.io 25 февраля 2023 г.
Если вы относитесь к числу людей, кому достаточно видимости, этот пост не для вас. С другой стороны, если у вас есть необходимость понять причины вещей, ваш творческий потенциал находится на другом уровне, и вы являетесь создателем библиотеки, этот пост для вас.
В основном я покажу вам, как веб-пакет используется для предоставления нам мощных фреймворков, таких как angular, vue, react
Древние дни
В древние времена для веб-разработки требовался только простой редактор и пара файлов.
И отношение между ними было вручную
Этого было достаточно для тех дней, когда было задействовано несколько пользователей, несколько требований, несколько серверов, один браузер и т. д.
Сегодня эти файлы еще востребованы, но они не закачиваются вручную в голову, html не привязывается вручную к данным, css супер продвинутый и другие сумасшедшие фичи, связанные с современной веб-разработкой.
ССР против КСО
Никто в здравом уме не стал бы использовать инфраструктуру SSR для разработки современной корпоративной сети. Возможно, для целевых страниц (Wordpress, Drupal), но не для Интернета, где взаимодействие с пользователем должно быть на другом уровне, например, Clickup.com или Trello:
В рамках SSR html создается на сервере с использованием некоторого механизма шаблонов, а затем отправляется в браузер. Вы можете обнаружить такие фреймворки, если требуется серверный язык: Java, php, python, ruby, c# и т. д.
В CSR-фреймворках HTML-код, отправляемый в браузер, минимален. Пакет javascript отвечает за рендеринг или создание контента, смешивая в реальном времени: javascript, ajax и данные микросервисов (json). Вы можете обнаружить такие фреймворки, если язык сервера не требуется: Java, php, python, ruby, c# и т. д., кроме Nodejs.
Итак, запомните это, пожалуйста:
Не используйте чистый SSR для веб-разработки. SSR нуждается в большей мощности процессора, поэтому теплая земля будет вам благодарна!
Современный стек внешнего интерфейса
Фронтенд-фреймворки сегодня доминируют, потому что только у нас есть эти возможности
Есть и другие, но предыдущие перечисленные известны во всем мире, и есть много профессий, если вы знаете одну из них.
Но если современный браузер по-прежнему требует и index.html, main.css, main.js, возникает вопрос:
Как эта структура конвертирует множество файлов в эти файлы 03?
Вебпак
Все перечисленные выше фреймворки (angular, react, vue) используют webpack для волшебства. Вот пример официального репозитория angular github
Если я получу 50 хлопков, я выложу сюда примеры vue и react.
Webpack используется почти для каждой функции, которую предполагает обычный разработчик, но ремесленникам или архитекторам, таким как я, необходимо понимать. Вот пара примеров
Режим разработки с веб-пакетом
В древности (надеюсь что) разработчики открывали свою html разработку вот так
Но сегодня, когда вы запускаете npm run dev, URL-адрес открывается в вашем браузере по умолчанию.
Это заслуга функции веб-пакета под названием DevServer, которая по сути является экспресс-сервером nodejs, и другими функциями nodejs, такими как прослушивание изменений в файлах вашей рабочей области, чтобы предложить вам горячую перезагрузку. Подробнее здесь:
https://webpack.js.org/configuration/dev-сервер/
Минимизировать или транспилировать с помощью веб-пакета
Эта часть сложна для юниоров: Браузер не понимает angular, react или vue
Браузеру нужен простой, старый, чистый и чистый javascript, который называется Vanilla Js.
Так что да, webpack отвечает за преобразование или, точнее, перенос файлов реакции в простой и чистый vanilla js, index.html и т. д. с помощью знаменитой сборки npm run.
Веб-загрузчик
Это чистая магия
Загрузчик Webpack — самая интересная, удивительная и полезная функция webpack. По сути, это метод javascript, который выполняется при каждой сборке (локальной или для рабочей) и передается для всех файлов в вашей рабочей области.
function loader(content) { // content could be the index.html, // main.css , foo.ts // bar.js }
Итак, если вы мастер струнных инструментов, вы можете дать волю своему воображению следующим образом:
Простой заполнитель (@ACME_UI) для замены одной специальной строки другой строкой. Это можно сделать в загрузчике webpack
import './App.css'; import HelloWorld from './components/HelloWorld' const App = () => { return ( @ACME_UI ); } export default App;
Или вместо того, чтобы вручную создавать файлы js, создайте свой собственный механизм внедрения зависимостей, например, эту аннотацию или декоратор @Autowired.
class HelloComponent { first_name: string; last_name: string; @Autowired settings: object constructor(fname: string, lname: string) { first_name = fname; last_name = lname; } getName(): string { var fullname: string = first_name + last_name; return fullname; } }
Подробнее здесь https://webpack.js.org/loaders/
Ссылки на изображения
- https://journocode.com/en/tutorials/html-css-and-javascript-the-basics-part-ii/
- https://www.theengineeringprojects.com/2020/07/how-to-include-javascript-code-in-html-page.html
- https://www.zoneofdevelopment.com/2019/08/07/angular-cli/
- https://jsmanifest.com/10-vscode-practices-to-hasten-your-react-development-flow/
- https://medium.com/@Nick_C_Rose/react-vs-vanilla-javascript-f5af0a9305a2
- https://www.linkedin.com/pulse/how-test-production-build-react-js-app-locally-vinay-sharma-he-him-
Заключение
Webpack является неизвестным героем почти всех современных фреймворков javascript и дает вам возможность создать свой собственный фреймворк, подобный моему, под названием LinkStart.js.
Или расширьте существующий своими потрясающими функциями.
Во второй части я расскажу, как использовать загрузчики веб-пакетов с нуля.
До следующего,
JRichardsz
Первоначально опубликовано на https://jrichardsz.github.io 25 февраля 2023 г.