nuckty-ext-command-serve
Локальная раздача собранного сайта через nginx с сгенерированной конфигурацией. Команды nuckty serve и nuckty stop.
Тип
command — добавляет команды serve и stop через env.commands.
Что делает
nuckty serve [target] [--port N]:
- Выбирает таргет и проверяет его каталог HTML и созданный сборкой файл
.build/nginx.conf. - Находит
nginxвPATH. - Записывает
.build/nginx-serve.confдля этого артефакта и порта (8080 по умолчанию). - Запускает nginx на переднем плане с адресом
127.0.0.1.
nuckty stop читает .build/nginx.pid, дважды проверяет команду и время запуска процесса и отправляет kill -QUIT только распознанному экземпляру. Очистка сборки сохраняет PID, конфигурацию запущенного сервера и журналы предпросмотра. Чужой, повторно использованный или некорректный PID приводит к отказу без сигнала.
Демон vnu завершает само расширение проверки после nuckty validate.
Зачем отслеживать PID
На машине разработчика может работать другой nginx — системный или для других проектов. Поэтому nuckty stop использует сохранённый PID и проверяет идентичность процесса перед остановкой; при несовпадении отказывается его завершать.
Локальная раздача
Конфигурация просмотра использует генератор ядра для маршрутизации, сжатия и выбора изображений. Она создаётся заново: изменения nginx.conf хуками сборки и правила Apache автоматически не переносятся. Проверка локального nginx не подтверждает настройку сервера в продакшене.
Без имени выбирается первый таргет. Порт — целое число от 1 до 65535. Команда работает на переднем плане; nuckty stop запускают из второго терминала в том же каталоге. Требуются инструменты POSIX; Windows без окружения POSIX не проверена.
Только для разработки
Установите расширение как зависимость для разработки (devDependency) для локального просмотра. В CI оно также может использоваться для интеграционных проверок через настоящий nginx.
Установка
Пример продолжает быстрый старт со стандартным обработчиком nuckty-ext-block-root. Добавьте новое расширение в ext глобального config/config-nuckty.ts, сохранив остальные записи. Если обработчик документа собственный, оставьте его вместо nuckty-ext-block-root.
Установите подготовленный пакет из каталога packages/ распакованного стартового проекта:
npm install --save-dev ./packages/nuckty-ext-command-serve-1.0.0-beta1.tgz
import { defineNucktyConfig } from 'nuckty';
export default defineNucktyConfig({
targets: { main: { configDir: 'config/', outDir: 'site/' } },
ext: ['nuckty-ext-block-root', 'nuckty-ext-command-serve'],
});
Для работы требуется nginx в PATH (локально — через Homebrew или системную установку).