noroman / phpack
Installs: 16
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/noroman/phpack
Requires
- leafo/scssphp: ^0.7.1
 - tedivm/jshrink: ^1.2
 - tholu/php-packer: ^0.2.0
 
This package is auto-updated.
Last update: 2024-12-29 05:14:17 UTC
README
В src директории стилей создаем файл build.json
Пример,
{
  "common": [
    "3",
    "2",
    "1"
  ],
  "admin": [
    "4",
    "import/5",
    "1"
  ],
  "personal": [
    "3",
    "2",
    "4"
  ]
}
где ключи (common, admin, personal) имена файлов для сборки css. Массив - имена файлов scss. Перечисление в необходимом порядке сборки.
Расширения не ставить. Предполагается что расширения scss.
Использование:
// ... $isProduction = false; // or true $cp = new CssPack( '/scss/', // абсолютный путь к файлам scss '/web/assets/css/' // абсолютный путь к сборкам css ); $cp->setProduction($isProduction); // путь к скриптам для web-страниц $cp->setRelativeWebPath('/assets/css/'); // получим путь к сборке `common` echo '<link type="text/css" href="' . $cp->compileCrunched('personal') . '">'; echo '<style>' . $cp->compileCrunched('common', true) . '</style>'; // ...
Для production проверяется есть ли собранный css-файл и отдает путь к уже готовому файлу. Для developing файл собирается каждый раз заново. При деплое нужно предусмотреть очистку сборок css для обновления.
Аналогично работает с js (В src директории js создаем файл build.json и тп).
// ... $isProduction = false; // or true $jp = new JsPack( '/js/', // абсолютный путь к файлам js '/dist/js/' // абсолютный путь к сборкам js ); $jp->setProduction($isProduction); // путь к скриптам для web-страниц $jp->setRelativeWebPath('/dist/js/'); echo '<script src="' . $jp->compileCrunched('admin') . '"></script>'; echo '<script>' . $jp->compileCrunched('main', true) . '</script>'; // ...