Некоторым разработчикам нравится писать ванильный JS, но некоторые вынуждены использовать фреймворк, такой как Vue, Angular, React e.t.c, потому что он поставляется с бандлером, таким как Webpack, некоторые на самом деле не знают, как реализовать бандлер изначально. С помощью этой статьи вы сможете фактически объединить свой проект javascript, не полагаясь на какие-либо рамки.
Что такое ParcelJS?
ParcelJS - это сборщик веб-приложений, отличающийся опытом разработки. Он предлагает молниеносную производительность при использовании многоядерной обработки и не требует настройки. С parcel вам не нужно настраивать какую-либо конфигурацию или какой-либо загрузчик для CSS, JS, ресурсов и т. Д.
Почему вам следует использовать Parcel
- Нулевая конфигурация:
- Представление
- Замена горячего модуля
- Разделение кода
- Поддержка многих типов активов
Начать работу с ParcelJS
Инициализировать npm для создания файла package.json
npm init -y
Установите ParcelJS Bundler как глобальный пакет
с помощью npm
npm install -g parcel-bundler
с использованием пряжи:
yarn global add parcel-bundler
Как служить вашему проекту
ParcelJS может использовать любой тип файла в качестве точки входа для обслуживания, но рекомендуется использовать ваш файл HTML / jS, например index.html / index.js, about.html / about.js.
вы можете обслуживать свои файлы с помощью следующая команда:
посылка имя_файла.расширение
parcel index.html
После того, как вы запустите команду parcel, она сгенерирует адрес http: // localhost: 1234, по которому вы сможете просмотреть свой веб-сайт. ParcelJS также поддерживает режим просмотра, который в основном отслеживает каждое изменение в вашем проекте и обновляет его прямо в вашем браузере.
parcel watch index.html
вы также можете просматривать файлы с несколькими записями с помощью parcel watch file1, file2 .. file N
parcel index.html about.html service.html contact.html
Импорт актива в ваш проект
Вы можете импортировать различные типы ресурсов, такие как (CSS, SCSS, LESS, STYLUS, Images и т. Д.), В любой JavaScript.
CSS
import ‘./style.css
SCSS
import ‘./style.scss`
NB: для компиляции SCSS вам необходимо установить пакет npm под названием sass
npm install -D sass
JAVASCRIPT
//ES6 Import import ‘./script.js
or
//commonJS module const script = require(‘./js/script’);
Готовим ваш проект к производству
Чтобы связать свой проект для производства, вам не нужно выполнять какую-либо настройку или напрягаться, Parcel автоматически определит все ваши файлы в вашем проекте (* js, * css, * scss, * jpg, * png, * svg и т. Д. ) и свяжите для вас все, что вы можете запустить в производство. используйте следующую команду для запуска процесса сборки.
parcel build index.html
Демо
Создайте простой проект, который выбирает пользователя из [Randomusers] (https://randomuser.me/) и отображает его на экране.
Сначала позвольте установить parcel-bundle как зависимость разработчика, потому что пакет нужен нам только на стадии разработки, он не пойдет с нашей производственной сборкой. Но если вы установили его как глобальный пакет, вам не нужно устанавливать его снова. если у вас нет, вы можете установить как зависимость разработчика или глобальную зависимость.
npm install -D parcel-bundler
затем создайте файлы index.html и index.js в корневом каталоге, index.html будет нашей отправной точкой, потому что браузер может рисовать только элементы / ресурсы в файле HTML на экране. Файл index.js будет корнем, в котором будет подключать все наши страницы / компоненты к DOM.
затем позвольте создать папку с именем pages, в которой будут находиться все файлы наших страниц.
NB: вы можете структурировать проект по своему усмотрению. Самое главное, когда вы импортируете файлы, убедитесь, что ваш путь правильный.
в файл index.html позвольте включить наш файл index.js, разметка должна выглядеть, как показано ниже.
<!DOCTYPE html> <html lang=”en”> <head> <meta charset=”UTF-8" /> <meta name=”viewport” content=”width=device-width, initial-scale=1.0" /> <meta http-equiv=”X-UA-Compatible” content=”ie=edge” /> <title>Parcel Tutorial</title> </head> <body> <script src=”index.js”></script> </body> </html>
затем измените файл package.json, в разделе сценариев добавьте команду dev и build. ваш раздел скриптов должен выглядеть так, как в разделе скриптов ниже.
“scripts”: { “dev”: “parcel index.html”, “build”: “parcel build index.html” }
NB: команда сценария разработки, которую мы будем использовать на этапе разработки после завершения разработки, то есть тогда мы будем использовать команду сценария сборки для объединения наших файлов в рабочую среду.
Добавление нашего Javascript в нашу папку Pages
давайте создадим файл с именем users.js, он будет экспортировать функцию, которая будет использовать API из [Random Users] (https://randomuser.me) и вернуть список пользователей.
который мы можем позже импортировать и повторно использовать в любом месте нашего приложения.
export const users = () => fetch(“https://randomuser.me/api/?results=10").then(res => res.json())
Добавление CSS в ваш проект.
Лично я всегда создаю отдельный файл CSS для каждого компонента / страницы. например home.css, about.css и т. д. и каждый компонент / страница в отдельной папке. Но ради этого урока, чтобы не усложнять его. Я просто использую один компонент / страницу. Вы можете следовать шаблону и подходу, который работает для вас. Важно, когда вы импортируете файл, убедитесь, что ваш путь всегда правильный.
давайте создадим еще один файл с именем home.js, который будет компонентом / страницей, в которой будут перечислены наши пользователи. скопируйте приведенный ниже фрагмент в файл.
.title { color: #fff; margin-bottom: 2rem; text-align: center; } .userAvatar { border-radius: 50%; } .user { list-style: none; display: flex; padding-left: -2rem; /* padding: 0; */ margin-left: -2.5rem; padding: 10px; &:not(:last-child) { border-bottom: solid 1px #ccc; } &-details { margin-left: 10px; margin-top: 4px; } &-name { font-weight: bolder; font-size: 18px; } &-email { font-style: italic; } } body { background-color: rgb(131, 4, 153); font-size: 16px; } .users { width: 40vw; margin: auto; border: 1px solid #ccc; border-radius: 10px; background: #fff; } .loader { color: #fff; font-size: 30px; font-weight: bolder; position: absolute; top: 50%; left: 50%; translate: (-50, -50); z-index: 1000; }
После того, как вы создали нашу таблицу стилей и файл users.js со списком пользователей из https://randomuser.me. позвольте импортировать нашу таблицу стилей и пользователей в наш файл main.js.
полный исходный код home.js ниже.
после того, как мы создали наш home.js и вставили указанный выше исходный код в файл, посмотрите, где мы объявляем домашнюю функцию, мы экспортируем функцию, то есть мы должны использовать ее в другом месте (повторно использовать).
перейдите в файл index.js, который мы создали ранее, который станет отправной точкой нашего проекта. если вы помните, мы включаем index.js в наш index.html. это файл index.js, который загрузит файл index.html, и файл index.js фактически будет использовать каждую создаваемую страницу.
import { home } from “./pages/home”; const app = document.createElement(“div”); app.setAttribute(“id”, “app”); app.appendChild(home()); document.body.appendChild(app);
NB: По сути, файл index.js собирает представление, созданное на странице home.js, и добавляет его в тело документа. т.е. (экран браузера).
Запуск вашего приложения
Чтобы запустить ваше приложение, мы выполним созданную ранее команду сценария npm.
npm run dev
NB: если в вашем проекте возникла ошибка, вызванная синтаксисом ES7, используемым в проекте. вы можете попробовать установить следующие пакеты npm @ babel / core и @ babel / plugin-transform-runtime
npm install -D @babel/core @babel/plugin-transform-runtime
затем создайте файл .babelrc в корневой папке проекта, сообщающий вашему проекту, что он должен использовать один из плагинов времени выполнения babel transform, который преобразует ES7 в то, что может понять ваш браузер. используйте нижеприведенный фрагмент.
{ “plugins”: [“@babel/plugin-transform-runtime”] }
Результат демонстрации ниже
Объединение вашего приложения в производство.
После разработки проекта вы захотите развернуть приложение в производственной среде, это одна из основных целей использования Parcel - минимизировать и уменьшить размер файлов проекта. вы можете запустить свою команду сборки, которую вы установили в разделе сценария
npm run build
Заключение.
Основная цель этой статьи - познакомить вас с ParcelJs и начать работу с ParcelJs. С помощью этой статьи вы сможете разработать и развернуть любой проект javascript в производственной среде. parcel js помогает уменьшить размер вашего приложения.
Вы можете найти демо для этого проекта ниже
[Репозиторий Github]
* NB: *, * если у вас есть вопросы или какая-то часть непонятна. вы можете оставить его в поле для комментариев. Я всегда к вашим услугам. *