@0x6368656174/wp-builder
WordPress CLI for fast build modern site
Last updated a year ago by 0x6368656174 .
LGPL-3.0 · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install @0x6368656174/wp-builder 
SYNC missed versions from official npm registry.

@0x6368656174/wpbuild

Утилита командной строки для продуктивной работы с WordPress при помощи интеграции с WebPack.

Зачем нужен данная утилита

Утилита пытается решить следующие проблемы разработки на WordPress:

  1. Разделение кода и представления, при помощи twig-шаблонов, в виде интеграции с Timber;
  2. Модульности JavaScript-кода, при помощи Babel и WebPack;
  3. Модульности CSS-кода, при помощи Sass/Scss и использовании БЭМ-методологии;
  4. Использование пакных менеджеров, при помощи интеграции с npm и Composer;
  5. Быстрый старт и развертывание проекта;
  6. Использование литеров, для автоматического контроля и исправления стиля написания кода;
  7. Сборка проекта из исходников и его распространение, для возможности интеграции проекта с CI.

Установка

Для установки, необходимо выполнить команду:

# npm install -g @0x6368656174/wp-builder

Использование

Инициализация нового проекта

Для инициализации нового пустого проекта, необходимо выполнить команду:

# wpbuild init

Структура нового проекта

  • composer/ - каталог со скриптами composer. По-умолчанию, там создается скрипт, который следит за тем, чтоб добавление и обновление пакетов через composer не затирало основные параметры dist/wp-config.php.
  • dist/ - каталог с результатом сборки проекта.
  • dist/vendors/ - каталог с установленными пакетами пакетного менеджера composer. После инициализации проекта в него будет автоматически установлено расширение для использования twig-шаблонов WordPress - Timber.
  • dist/wp-content/ - стандартная папка wp-content из поставки WordPress. Она вынесена отдельно, чтоб она не затиралась, в случае обновления WordPress через composer. В dist/wp-content/название_темы/ будет автоматически собираться тема проекта.
  • dist/.htaccess - файл конфигурации веб-сервера Apache, для работы WordPress из подкаталога wordpress.
  • dist/wordpress/ - каталог автоматической установки WordPress из composer.
  • dist/index.php - переделанный стандартный index.php WordPress для работы его из подкаталога wordpress.
  • dist/wp-config.php - стандартный файл с настройками WordPress. Параметры DB_NAME, DB_USER, DB_PASSWORD, DB_HOST и WP_DEBUG не будут перезатераться при обновлении WordPress через composer.
  • node_modules/ - каталог с установленными пакетами пакетного менеджера npm.
  • src/название_темы/ - каталог с исходниками темы.
  • .editorconfig - файл описания стиля кода для IDE.
  • .eslintrc - файл конфигурации линтера JavaScript - ESLint.
  • .gitignore - файл описания игнорируемых файлов системой контроля версии git.
  • .lintstagedrc - файл описания автоматического применения литеров, при создании коммита в git.
  • .php_cs.dist - файл конфигурации линтера PHP - PHP-CS-Fixer.
  • .prettierrc - файл конфигурации утилиты автоматического форматирования кода Prettier.
  • .stylelintrc - файл конфигурации линтера CSS/Sass/Scss - StyleLint.
  • composer.json - стандартный файл описания проекта пакетного менеджера composer.
  • composer.lock - служебный файл пакетного менеджера composer.
  • wpbuild.json - файл конфигурации проекта. Описание конфигурации смотри ниже.
  • package.json - стандартный файл описания проекта пакетного менеджера npm.
  • tsconfig.json - файл конфигурации TypeScript.
  • tslint.json - файл конфигурации линтера TypeScript - TSLint.

Утилита позволяет разбить проект WordPress (тему), на независимы модули, компонтенты (бллоки), каждый из которых содержит в себе отдельные реализации на PHP, HTML (twig) CSS (так же поддерживаются Sass и Scss), и JavaScript (так же поддерживается TypeScript). Релизации внутри модуля могут быть автономными, а могу быть связаны со смежными модулями. Для CSS части связь реализуется только в вариантах написанных на Sass/Scss, при помощи @import диррективы. Для JavaScript части связь реализуется при помощи ES-модулей.

Утилита собирает все модули в готовый проект, при этом все CSS-части компилируются в несколько оптимизированных CSS-файлов, а JS-части компилируются при помощи Babel или TypeScript в ES6, и собираются в отдельные JS-модули при помощи WebPack.

Принципы организации файлов с исходниками темы

Все файлы с исходниками принято располагать в папке src/название_темы/.

Файлы PHP рекомендуется размещать внутри вложенных папок сгруппированных по назначению. Например, файлы описывающие пользовательские мето-боксы можно разместить в папке src/название_темы/MetaBox. Утилита автоматически настраивает RSR-4 автолоад файлов PHP по их пространству имен. Она создает пространство имен вида название_темы в CamelCase стиле (например для темы test-theme утилита создаст пространство имен TestTheme) и прописывает PSR-4 автолоад для поиска пространства имен темы в папке src/название_темы/. Поэтому для PHP-файлов можно задать пространство имен (nampespace) и потом автоматически их подключать при помощи PSR-4 автолоада. Например для файла описывющего пользовательский мето-бокс для главной страницы Front темы test-theme можно задать пространтсво имен namespaces TestTheme\MetaBox и потом использовать его при помощи PSR-4 автолоада use TestTheme\MetaBox\Front. Важно соблюдать правила именования PSR-4, т.е. название папки должно совпадать с названием пространства имен, а название класса с названием файла.

Current Tags

  • 1.6.1                                ...           latest (a year ago)

61 Versions

  • 1.6.1                                ...           a year ago
  • 1.6.0                                ...           a year ago
  • 1.5.0                                ...           a year ago
  • 1.4.0                                ...           a year ago
  • 1.3.2                                ...           2 years ago
  • 1.3.1                                ...           2 years ago
  • 1.3.0                                ...           2 years ago
  • 1.2.1                                ...           2 years ago
  • 1.2.0                                ...           2 years ago
  • 1.1.8                                ...           2 years ago
  • 1.1.7                                ...           2 years ago
  • 1.1.6                                ...           2 years ago
  • 1.1.5                                ...           2 years ago
  • 1.1.4                                ...           2 years ago
  • 1.1.3                                ...           2 years ago
  • 1.1.2                                ...           2 years ago
  • 1.1.1                                ...           2 years ago
  • 1.1.0                                ...           2 years ago
  • 1.0.51                                ...           2 years ago
  • 1.0.48                                ...           2 years ago
  • 1.0.47                                ...           2 years ago
  • 1.0.46                                ...           2 years ago
  • 1.0.45                                ...           2 years ago
  • 1.0.44                                ...           2 years ago
  • 1.0.43                                ...           2 years ago
  • 1.0.42                                ...           2 years ago
  • 1.0.41                                ...           2 years ago
  • 1.0.40                                ...           2 years ago
  • 1.0.38                                ...           2 years ago
  • 1.0.36                                ...           2 years ago
  • 1.0.35                                ...           2 years ago
  • 1.0.34                                ...           2 years ago
  • 1.0.33                                ...           2 years ago
  • 1.0.32                                ...           2 years ago
  • 1.0.31                                ...           2 years ago
  • 1.0.30                                ...           2 years ago
  • 1.0.29                                ...           2 years ago
  • 1.0.26                                ...           2 years ago
  • 1.0.25                                ...           2 years ago
  • 1.0.24                                ...           2 years ago
  • 1.0.23                                ...           2 years ago
  • 1.0.22                                ...           2 years ago
  • 1.0.21                                ...           2 years ago
  • 1.0.20                                ...           2 years ago
  • 1.0.19                                ...           2 years ago
  • 1.0.18                                ...           2 years ago
  • 1.0.17                                ...           2 years ago
  • 1.0.16                                ...           2 years ago
  • 1.0.15                                ...           2 years ago
  • 1.0.14                                ...           2 years ago
  • 1.0.13                                ...           2 years ago
  • 1.0.12                                ...           2 years ago
  • 1.0.11                                ...           2 years ago
  • 1.0.10                                ...           2 years ago
  • 1.0.9                                ...           2 years ago
  • 1.0.8                                ...           2 years ago
  • 1.0.7                                ...           2 years ago
  • 1.0.6                                ...           2 years ago
  • 1.0.5                                ...           2 years ago
  • 1.0.4                                ...           2 years ago
  • 1.0.1                                ...           2 years ago
Maintainers (1)
Downloads
Today 0
This Week 62
This Month 185
Last Day 0
Last Week 1
Last Month 124
Dependencies (44)
Dev Dependencies (0)
None
Dependents (0)
None

Copyright 2014 - 2016 © taobao.org |