{"id":15019608,"url":"https://github.com/sedovdmitry/bitrix-webpack","last_synced_at":"2025-10-24T13:30:46.694Z","repository":{"id":36462475,"uuid":"223869472","full_name":"sedovdmitry/bitrix-webpack","owner":"sedovdmitry","description":"bitrix webpack cli","archived":false,"fork":false,"pushed_at":"2023-07-11T01:52:16.000Z","size":188,"stargazers_count":11,"open_issues_count":3,"forks_count":5,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-02-06T00:37:01.583Z","etag":null,"topics":["bitrix","cli","es6","sass","uikit3","vue2","webpack4"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sedovdmitry.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-11-25T05:37:14.000Z","updated_at":"2022-10-26T17:30:39.000Z","dependencies_parsed_at":"2024-10-10T07:40:45.727Z","dependency_job_id":null,"html_url":"https://github.com/sedovdmitry/bitrix-webpack","commit_stats":{"total_commits":25,"total_committers":2,"mean_commits":12.5,"dds":"0.040000000000000036","last_synced_commit":"c702ad256db2ce5d689d117313877fd027874ee5"},"previous_names":["sedovdmitry/bitrix-template"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sedovdmitry%2Fbitrix-webpack","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sedovdmitry%2Fbitrix-webpack/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sedovdmitry%2Fbitrix-webpack/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sedovdmitry%2Fbitrix-webpack/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sedovdmitry","download_url":"https://codeload.github.com/sedovdmitry/bitrix-webpack/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237896396,"owners_count":19383509,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bitrix","cli","es6","sass","uikit3","vue2","webpack4"],"created_at":"2024-09-24T19:53:45.747Z","updated_at":"2025-10-24T13:30:41.141Z","avatar_url":"https://github.com/sedovdmitry.png","language":"JavaScript","readme":"# bitrix-webpack\nbitrix-webpack — консольный инструмент для автоматического разворачивания Webpack в битрикс-приложении.\nОсновная цель — упростить и автоматизировать первоначальную настройку Webpack для битрикс-проекта.\n\n## Содержание\n1. [Описание](#introduction)\n2. [Установка](#install)\n3. [Конфигурация](#config)\n4. [Как пользоваться](#build)\n\n\u003ch2 id=\"introduction\"\u003eОписание\u003c/h2\u003e\n\nbitrix-webpack — одной командой разворачивает и настраивает сборщик проектов Webpack4 с установкой следующих CSS- и JS- фреймворков:\n\n- Webpack 4\n- js-фреймворк Vue 2 с примером\n- css-фреймворк Uikit 3\n- включить поддержку SASS\n- разделение css и js на вендорные и кастомные стили и скрипты\n- автоматически добавляются сниппеты, подключающие собранные webpack'ом файлы в `footer.php` и в `header.php` во все шаблоны, расположенные в `/bitrix/templates` и `/local/templates`.\n\nПосле установки Webpack будет настроен на транспиляцию в ES5, объединение и минификацию вендорных и кастомных для проекта js-скриптов. Объединение, минификацию и расстановку префиксов для css-стилей. Для обхода агрессивного браузерного кеширования к созданным webpack'ом файлам добавляется хэш в название.\n\nВ итоге получится:\n\n```html\n  \u003clink rel=\"stylesheet\" href=\"/dist/vendor.2b7f85651db9f3360f22.css\"\u003e\n  \u003clink rel=\"stylesheet\" href=\"/dist/custom.f9ef87764ca646e868fa.css\"\u003e\n\u003c/head\u003e\n```\n\n```html\n    \u003cscript src=\"/dist/vendor.2b7f85651db9f3360f22.js\"\u003e\u003c/script\u003e\n    \u003cscript src=\"/dist/custom.f9ef87764ca646e868fa.js\"\u003e\u003c/script\u003e\n\u003c/body\u003e\n```\n\n\u003ch2 id=\"install\"\u003eУстановка\u003c/h2\u003e\n\n1. Перейдите в консоли в самую верхнюю директорию проекта.\n2. **Важно.** Убедитесь, что нет файла `package.json`, так как скрипт его не перезаписывает, а только создает.\n3. Установить\n\n```bash\n$ npm install -g bitrix-webpack\n```\n\nЗапустить с установкой всех зависимостей\n```bash\n$ bitrix-webpack --install\n```\n\nЗапустить без установки всех зависимостей.\n```bash\n$ bitrix-webpack\n```\n\nПоявится меню, где можно будет выбрать устанавливать поддержку SASS или нет:\n\n![](https://github.com/sedovdmitry/bitrix-webpack/blob/master/assets/console.png?raw=true)\n\n\nВ случае без запуска флага `--install` можно до установки зависимостей отредактировать `package.json`, удалить ненужные зависимости, добавить свои, и только потом установить зависимости:\n\n```bash\n$ npm i\n```\n\nЕсли для каких-то шаблонов не нужно подключать стили и скрипты (например, для лендингов), генерируемые для основного сайта, то нужно будет зайти и удалить из этих шаблонов сниппеты, автоматически добавленными перед закрывающимися тегами `\u003chead/\u003e` и `\u003cbody/\u003e`.\n\n\u003ch2 id=\"config\"\u003eКонфигурация\u003c/h2\u003e\n\nВ структуру битрикс-проекта будут добавлены следующие директории и файлы:\n\n```\n/build/\n  config.base.js\n  config.development.js\n  config.production.js\n  getWebpackAssets.php\n/custom/\n  /css/\n    example.css\n  /img/\n    webpack.png\n  /js/\n    hello_webpack.js\n  /vue/\n    /assets/\n      logo.png\n    /components/\n      Hello.vue\n    Example.vue\n    main.js\n/src/\n  webpack_custom.js\n  webpack_vendor.js\n.babelrc\n.browserlistrc\npackage.json\n\n```\n\nГде в `/build` содержатся настройки Webpack.\n\nВ `/custom` содержатся кастомные стили и скрипты проекта. Есть пример с Vue.\n\nВ `/src` импортируются js и css, которые забирать Webpack. В файле `/src/webpack_vendor.js` импортируйте js- и css- библиотеки, фреймворки, т.е. которые редко меняются:\n\n```js\n// vendor styles\nimport '../node_modules/uikit/dist/css/uikit.css'\n\n// vendor js\n// set uikit in global variable\nimport UIkit from 'uikit'\nwindow.UIkit = UIkit;\n```\n\nВ файл `/src/webpack_custom.js` импортируйте специфические для проекта стили и скрипты.\n\nТакое разделение на вендорные и кастомные файлы позволяет лишний раз не пересобирать Webpack'у редко изменяющиеся вендорные зависимости.\n\n```js\n// styles\nimport '../custom/css/example.css';\n\n// js\nimport '../custom/js/hello_webpack';\n\n// vue\nimport '../custom/vue/main';\n```\n\nПосмотрите и исправьте если нужно файл `.browserlistrc`, чтобы добавить или убрать поддержку браузеров. По умолчанию включена поддержка браузеров, начиная с IE11.\n\n\u003ch2 id=\"build\"\u003eКак пользоваться\u003c/h2\u003e\n\nДля запуска сборки в режиме разработки выполните команду\n```bash\n$ npm run dev\n```\n\u003e Сборщик сгенерирует все файлы, указанные `/src/webpack_custom.js` и `/src/webpack_vendor.js` и начнет наблюдать за изменениями в реальном времени.\n\nДля запуска сборки в режиме продакшена  \n```bash\n$ npm run prod\n```\n\u003e Сборщик сгенерирует все файлы, указанные `/src/webpack_custom.js` и `/src/webpack_vendor.js` и применит все оптимизации.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsedovdmitry%2Fbitrix-webpack","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsedovdmitry%2Fbitrix-webpack","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsedovdmitry%2Fbitrix-webpack/lists"}