bitrix-webpack
Version:
Автоматическая подготовка и настройка Webpack4 для Bitrix
150 lines (112 loc) • 6.59 kB
Markdown
# bitrix-webpack
bitrix-webpack — консольный инструмент для автоматического разворачивания Webpack в битрикс-приложении.
Основная цель — упростить и автоматизировать первоначальную настройку Webpack для битрикс-проекта.
## Содержание
1. [Описание](#introduction)
2. [Установка](#install)
3. [Конфигурация](#config)
4. [Как пользоваться](#build)
<h2 id="introduction">Описание</h2>
bitrix-webpack — одной командой разворачивает и настраивает сборщик проектов Webpack4 с установкой следующих CSS- и JS- фреймворков:
- Webpack 4
- js-фреймворк Vue 2 с примером
- css-фреймворк Uikit 3
- включить поддержку SASS
- разделение css и js на вендорные и кастомные стили и скрипты
- автоматически добавляются сниппеты, подключающие собранные webpack'ом файлы в `footer.php` и в `header.php` во все шаблоны, расположенные в `/bitrix/templates` и `/local/templates`.
После установки Webpack будет настроен на транспиляцию в ES5, объединение и минификацию вендорных и кастомных для проекта js-скриптов. Объединение, минификацию и расстановку префиксов для css-стилей. Для обхода агрессивного браузерного кеширования к созданным webpack'ом файлам добавляется хэш в название.
В итоге получится:
```html
<link rel="stylesheet" href="/dist/vendor.2b7f85651db9f3360f22.css">
<link rel="stylesheet" href="/dist/custom.f9ef87764ca646e868fa.css">
</head>
```
```html
<script src="/dist/vendor.2b7f85651db9f3360f22.js"></script>
<script src="/dist/custom.f9ef87764ca646e868fa.js"></script>
</body>
```
<h2 id="install">Установка</h2>
1. Перейдите в консоли в самую верхнюю директорию проекта.
2. **Важно.** Убедитесь, что нет файла `package.json`, так как скрипт его не перезаписывает, а только создает.
3. Установить
```bash
$ npm install -g bitrix-webpack
```
Запустить с установкой всех зависимостей
```bash
$ bitrix-webpack --install
```
Запустить без установки всех зависимостей.
```bash
$ bitrix-webpack
```
Появится меню, где можно будет выбрать устанавливать поддержку SASS или нет:

В случае без запуска флага `--install` можно до установки зависимостей отредактировать `package.json`, удалить ненужные зависимости, добавить свои, и только потом установить зависимости:
```bash
$ npm i
```
Если для каких-то шаблонов не нужно подключать стили и скрипты (например, для лендингов), генерируемые для основного сайта, то нужно будет зайти и удалить из этих шаблонов сниппеты, автоматически добавленными перед закрывающимися тегами `<head/>` и `<body/>`.
<h2 id="config">Конфигурация</h2>
В структуру битрикс-проекта будут добавлены следующие директории и файлы:
```
/build/
config.base.js
config.development.js
config.production.js
getWebpackAssets.php
/custom/
/css/
example.css
/img/
webpack.png
/js/
hello_webpack.js
/vue/
/assets/
logo.png
/components/
Hello.vue
Example.vue
main.js
/src/
webpack_custom.js
webpack_vendor.js
.babelrc
.browserlistrc
package.json
```
Где в `/build` содержатся настройки Webpack.
В `/custom` содержатся кастомные стили и скрипты проекта. Есть пример с Vue.
В `/src` импортируются js и css, которые забирать Webpack. В файле `/src/webpack_vendor.js` импортируйте js- и css- библиотеки, фреймворки, т.е. которые редко меняются:
```js
// vendor styles
import '../node_modules/uikit/dist/css/uikit.css'
// vendor js
// set uikit in global variable
import UIkit from 'uikit'
window.UIkit = UIkit;
```
В файл `/src/webpack_custom.js` импортируйте специфические для проекта стили и скрипты.
Такое разделение на вендорные и кастомные файлы позволяет лишний раз не пересобирать Webpack'у редко изменяющиеся вендорные зависимости.
```js
// styles
import '../custom/css/example.css';
// js
import '../custom/js/hello_webpack';
// vue
import '../custom/vue/main';
```
Посмотрите и исправьте если нужно файл `.browserlistrc`, чтобы добавить или убрать поддержку браузеров. По умолчанию включена поддержка браузеров, начиная с IE11.
<h2 id="build">Как пользоваться</h2>
Для запуска сборки в режиме разработки выполните команду
```bash
$ npm run dev
```
> Сборщик сгенерирует все файлы, указанные `/src/webpack_custom.js` и `/src/webpack_vendor.js` и начнет наблюдать за изменениями в реальном времени.
Для запуска сборки в режиме продакшена
```bash
$ npm run prod
```
> Сборщик сгенерирует все файлы, указанные `/src/webpack_custom.js` и `/src/webpack_vendor.js` и применит все оптимизации.