Catalog npm
Back to packageRELEASE DETAILS

1.0.43

npm

@0x6368656174/wp-builder

WordPress CLI for fast build modern site

Published18 Jul 2018
Direct dependencies48
Transitive dependenciesNot calculated

README

Current package documentation

@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, т.е. название папки должно совпадать с названием пространства имен, а название класса с названием файла.

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Declared dependencies 48

Native requirements
48 direct targetsNot calculated transitive count
Package / targetRequirementRelationship
@babel/core
Environment
{
  "local_name": "@babel/core",
  "alias": false,
  "peer_metadata": null
}
^7.0.0-beta.53runtime
@babel/plugin-transform-runtime
Environment
{
  "local_name": "@babel/plugin-transform-runtime",
  "alias": false,
  "peer_metadata": null
}
^7.0.0-beta.53runtime
@babel/preset-env
Environment
{
  "local_name": "@babel/preset-env",
  "alias": false,
  "peer_metadata": null
}
^7.0.0-beta.53runtime
@babel/runtime
Environment
{
  "local_name": "@babel/runtime",
  "alias": false,
  "peer_metadata": null
}
^7.0.0-beta.53runtime
babel-loader
Environment
{
  "local_name": "babel-loader",
  "alias": false,
  "peer_metadata": null
}
^8.0.0-beta.4runtime
camelcase
Environment
{
  "local_name": "camelcase",
  "alias": false,
  "peer_metadata": null
}
^5.0.0runtime
chalk
Environment
{
  "local_name": "chalk",
  "alias": false,
  "peer_metadata": null
}
^2.4.1runtime
clean-webpack-plugin
Environment
{
  "local_name": "clean-webpack-plugin",
  "alias": false,
  "peer_metadata": null
}
^0.1.19runtime
copy-webpack-plugin
Environment
{
  "local_name": "copy-webpack-plugin",
  "alias": false,
  "peer_metadata": null
}
^4.5.2runtime
css-loader
Environment
{
  "local_name": "css-loader",
  "alias": false,
  "peer_metadata": null
}
^1.0.0runtime
cssnano
Environment
{
  "local_name": "cssnano",
  "alias": false,
  "peer_metadata": null
}
^4.0.1runtime
eslint
Environment
{
  "local_name": "eslint",
  "alias": false,
  "peer_metadata": null
}
^5.1.0runtime
eslint-config-google
Environment
{
  "local_name": "eslint-config-google",
  "alias": false,
  "peer_metadata": null
}
^0.9.1runtime
extract-text-webpack-plugin
Environment
{
  "local_name": "extract-text-webpack-plugin",
  "alias": false,
  "peer_metadata": null
}
^4.0.0-beta.0runtime
file-loader
Environment
{
  "local_name": "file-loader",
  "alias": false,
  "peer_metadata": null
}
^1.1.11runtime
git-rev-sync
Environment
{
  "local_name": "git-rev-sync",
  "alias": false,
  "peer_metadata": null
}
^1.12.0runtime
glob
Environment
{
  "local_name": "glob",
  "alias": false,
  "peer_metadata": null
}
^7.1.2runtime
html-loader
Environment
{
  "local_name": "html-loader",
  "alias": false,
  "peer_metadata": null
}
^0.5.5runtime
loader-utils
Environment
{
  "local_name": "loader-utils",
  "alias": false,
  "peer_metadata": null
}
^1.1.0runtime
lodash
Environment
{
  "local_name": "lodash",
  "alias": false,
  "peer_metadata": null
}
^4.17.10runtime
make-dir
Environment
{
  "local_name": "make-dir",
  "alias": false,
  "peer_metadata": null
}
^1.3.0runtime
mini-css-extract-plugin
Environment
{
  "local_name": "mini-css-extract-plugin",
  "alias": false,
  "peer_metadata": null
}
^0.4.1runtime
moment
Environment
{
  "local_name": "moment",
  "alias": false,
  "peer_metadata": null
}
^2.22.2runtime
node-sass
Environment
{
  "local_name": "node-sass",
  "alias": false,
  "peer_metadata": null
}
^4.9.2runtime
postcss-loader
Environment
{
  "local_name": "postcss-loader",
  "alias": false,
  "peer_metadata": null
}
^2.1.6runtime
postcss-preset-env
Environment
{
  "local_name": "postcss-preset-env",
  "alias": false,
  "peer_metadata": null
}
^5.2.1runtime
prettier
Environment
{
  "local_name": "prettier",
  "alias": false,
  "peer_metadata": null
}
^1.13.7runtime
resolve-url-loader
Environment
{
  "local_name": "resolve-url-loader",
  "alias": false,
  "peer_metadata": null
}
^2.3.0runtime
sass-loader
Environment
{
  "local_name": "sass-loader",
  "alias": false,
  "peer_metadata": null
}
^7.0.1runtime
shortid
Environment
{
  "local_name": "shortid",
  "alias": false,
  "peer_metadata": null
}
^2.2.11runtime
simple-get
Environment
{
  "local_name": "simple-get",
  "alias": false,
  "peer_metadata": null
}
^3.0.2runtime
ssh2
Environment
{
  "local_name": "ssh2",
  "alias": false,
  "peer_metadata": null
}
^0.6.1runtime
ssh2-streams
Environment
{
  "local_name": "ssh2-streams",
  "alias": false,
  "peer_metadata": null
}
^0.2.1runtime
style-loader
Environment
{
  "local_name": "style-loader",
  "alias": false,
  "peer_metadata": null
}
^0.21.0runtime
stylelint
Environment
{
  "local_name": "stylelint",
  "alias": false,
  "peer_metadata": null
}
^9.3.0runtime
stylelint-config-sass-guidelines
Environment
{
  "local_name": "stylelint-config-sass-guidelines",
  "alias": false,
  "peer_metadata": null
}
^5.0.0runtime
stylelint-order
Environment
{
  "local_name": "stylelint-order",
  "alias": false,
  "peer_metadata": null
}
^0.8.1runtime
stylelint-scss
Environment
{
  "local_name": "stylelint-scss",
  "alias": false,
  "peer_metadata": null
}
^3.1.3runtime
svg2png
Environment
{
  "local_name": "svg2png",
  "alias": false,
  "peer_metadata": null
}
^4.1.1runtime
tar
Environment
{
  "local_name": "tar",
  "alias": false,
  "peer_metadata": null
}
^4.4.4runtime
ts-loader
Environment
{
  "local_name": "ts-loader",
  "alias": false,
  "peer_metadata": null
}
^4.4.2runtime
tslint
Environment
{
  "local_name": "tslint",
  "alias": false,
  "peer_metadata": null
}
^5.10.0runtime
typescript
Environment
{
  "local_name": "typescript",
  "alias": false,
  "peer_metadata": null
}
^2.8.3runtime
url-loader
Environment
{
  "local_name": "url-loader",
  "alias": false,
  "peer_metadata": null
}
^1.0.1runtime
webpack
Environment
{
  "local_name": "webpack",
  "alias": false,
  "peer_metadata": null
}
^4.16.0runtime
webpack-dev-server
Environment
{
  "local_name": "webpack-dev-server",
  "alias": false,
  "peer_metadata": null
}
^3.1.4runtime
write-file-webpack-plugin
Environment
{
  "local_name": "write-file-webpack-plugin",
  "alias": false,
  "peer_metadata": null
}
^4.3.2runtime
yargs
Environment
{
  "local_name": "yargs",
  "alias": false,
  "peer_metadata": null
}
^12.0.1runtime

Distribution files

1 collected
Distribution 1

Source distribution

Source file
Checksums from source
{
  "integrity": "sha512-QBfwUq8l/RVeB5mJEQgI5ASJeoHThcYOq/+TE8/EBDOV4QOtoTursFaxvbWDWtnXDb7uRkDK7jkY+TQ2eiahbQ==",
  "shasum": "aae2832a0a0e606f25c5f4bc5265214e1bb88b49",
  "tarball": "https://registry.npmjs.org/@0x6368656174/wp-builder/-/wp-builder-1.0.43.tgz",
  "fileCount": 51,
  "unpackedSize": 194549,
  "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbTuAZCRA9TVsSAnZWagAA6wsP/Rec9dKRIpNTOxoNoWIx\nSXBpMMN+Yb2mcQWfm/AtPsH1gGS43g6K2vWwa6ktOoYb5CYnK9r1Ms70NJvh\nnX9FRZ70tPPXqIZave1z7J1gKcOPXewWbn1TU3CMZY1i+gyo8VG81P6HU247\nQlfCY/tZV1zGbOQxbhXOSlLoMp0Bc85XlU4blBBPWbtk0Q+0OXO/Db7vsNvN\nwjciCt5siaNsFr60VZkgK3D/4Wu5qsaDiQ+VrrptESrjzFvRZUrf7oNrNd/W\noGxpaB+jeXjbpDUOke9XVQL6f5A1BEzt6kaEKkvmGYUOjA0+kctHTcGwh7g9\nYEGgEzGpGd8mk5EUDpqeROWlAK10wruT2wMq3i7QKExOmWpas+CUwDT+uM0c\n4IQ/FRxyTd2KYNxFQUp0TpkB3H/6wxPJRXAR7pRXeDz+eaHvSQUnbarMtDNV\n0zl4q07AMbHKrIIQ9txB1UMU3Llt+98LfLJmXPudO3Z6YXja8PRVPxEMLxam\npqNpgeaCK7+n41QlSRCkWIuodEPAnS4WpA1e0xt/bRZNI/EmzLBQ/WkPZeN8\n4RcVcibSbEWBjaBbtm4cMDd2SB0gsLM64sGXms7dpuBYccEu9MYLkNvlW5td\nA+WPYdCEruECJXAvNVGHuuRgVKAIiyH1D+NVAgBgG5BBIh9XDwYuP2kOb9n9\nqdp1\r\n=tbpy\r\n-----END PGP SIGNATURE-----\r\n",
  "signatures": [
    {
      "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA",
      "sig": "MEUCIQDtD35I/coRYR1XLWritMiD/zkoS0E7JK/uWlfO+qfFgQIgX9rKolIqQucswjwV3XEGk1EN+wJ/WvUH0euByC7vkvI="
    }
  ]
}

Repository

PENDING
0x6368656174/wb-builder

Shared repository data · GitHub

License detected in repository
Not collected

Repository

ACCESSIBLE
0x6368656174/wp-builder

Shared repository data · GitHub

License detected in repository
LGPL-3.0
License branch / ref
master
Last push
29 Jan 2019
Archived
No
Contributor identities
— · partial collection

Public sponsor counts have not been collected. These signals belong to the repository owner.

Downloads & popularity

0count
Gauge · observed snapshots24 Oct 2026
10.50
2026-10-24: 0 · observed 2026-10-24T12:18:04.8244482Z
24 Oct24 Oct

github · 1 observations shown. Missing days are unknown.

View observed values
Date / source periodValueObserved at
2026-10-2402026-10-24T12:18:04.8244482Z

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 22:38 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package_version:947bc3688c546988c7ae671e8077a2fb257b4e94de65793397b9f0e354e39bf1

Other collected versions

1.6.129 Jan1.6.028 Jan1.5.028 Jan1.4.028 Jan1.3.229 Nov1.3.128 NovView all collected versions →