/
tm-project
/
rbac-react-system
Обзор
Документация
Войти
/
tm-project
/
rbac-react-system
Код
Запросы
0
Пакеты
0
Релизы
1
CI/CD
Аналитика
Безопасность
gitverse
scripts/pack-local.sh
142 строки
5 KB
Artem
chore: release v1.0.4
30 ноя 2025, 22:51
30 ноя 2025, 22:51
f6f509c
Код
Авторство
О чём код?
#!/bin/bash # Скрипт для создания локального пакета для тестирования # Использование: ./scripts/pack-local.sh [путь-к-тестовому-проекту] set -e # Прервать при ошибке echo "📦 rbac-react-system - Создание локального пакета" echo "==================================================" # Цвета для вывода GREEN='\033[0;32m' BLUE='\033[0;34m' YELLOW='\033[1;33m' RED='\033[0;31m' NC='\033[0m' # No Color # Проверка, что мы в корне проекта if [ ! -f "package.json" ]; then echo -e "${RED}❌ Ошибка: package.json не найден. Запустите скрипт из корня проекта.${NC}" exit 1 fi # Проверка аргумента (путь к тестовому проекту) TEST_PROJECT="" if [ -n "$1" ]; then TEST_PROJECT="$1" if [ ! -d "$TEST_PROJECT" ]; then echo -e "${YELLOW}⚠️ Предупреждение: Тестовый проект не найден: $TEST_PROJECT${NC}" TEST_PROJECT="" fi fi # Шаг 1: Очистка предыдущей сборки echo -e "${BLUE}🧹 Шаг 1/5: Очистка предыдущей сборки...${NC}" npm run clean echo -e "${GREEN}✅ Очистка завершена${NC}" echo "" # Шаг 2: Запуск тестов echo -e "${BLUE}🧪 Шаг 2/5: Запуск тестов...${NC}" if npm test -- --passWithNoTests; then echo -e "${GREEN}✅ Все тесты прошли${NC}" else echo -e "${RED}❌ Тесты не прошли!${NC}" read -p "Продолжить несмотря на ошибки? (y/N): " -n 1 -r echo if [[ ! $REPLY =~ ^[Yy]$ ]]; then exit 1 fi fi echo "" # Шаг 3: Проверка типов echo -e "${BLUE}🔷 Шаг 3/5: Проверка TypeScript типов...${NC}" if npm run type-check; then echo -e "${GREEN}✅ Типы корректны${NC}" else echo -e "${RED}❌ Ошибки типизации!${NC}" exit 1 fi echo "" # Шаг 4: Сборка библиотеки echo -e "${BLUE}🏗️ Шаг 4/5: Сборка библиотеки...${NC}" npm run build # Проверка результата сборки if [ ! -d "build" ]; then echo -e "${RED}❌ Ошибка: Директория build не создана${NC}" exit 1 fi if [ ! -d "build/esm" ] || [ ! -d "build/cjs" ] || [ ! -d "build/types" ]; then echo -e "${RED}❌ Ошибка: Не все артефакты сборки созданы${NC}" exit 1 fi echo -e "${GREEN}✅ Сборка завершена${NC}" # Показать размер сборки echo -e "${BLUE}📊 Размер сборки:${NC}" du -sh build/ echo "" # Шаг 5: Создание .tgz пакета echo -e "${BLUE}📦 Шаг 5/5: Создание .tgz пакета...${NC}" # Удалить старые .tgz файлы rm -f rbac-react-system-*.tgz # Создать пакет npm pack # Получить имя созданного файла PACKAGE_FILE=$(ls -t rbac-react-system-*.tgz | head -1) if [ -z "$PACKAGE_FILE" ]; then echo -e "${RED}❌ Ошибка: Пакет не создан${NC}" exit 1 fi echo -e "${GREEN}✅ Пакет создан: $PACKAGE_FILE${NC}" # Показать размер пакета PACKAGE_SIZE=$(du -h "$PACKAGE_FILE" | cut -f1) echo -e "${BLUE}📦 Размер пакета: $PACKAGE_SIZE${NC}" echo "" # Шаг 6: Копирование в тестовый проект (если указан) if [ -n "$TEST_PROJECT" ]; then echo -e "${BLUE}📂 Копирование в тестовый проект...${NC}" cp "$PACKAGE_FILE" "$TEST_PROJECT/" echo -e "${GREEN}✅ Пакет скопирован в: $TEST_PROJECT/$PACKAGE_FILE${NC}" echo "" echo -e "${YELLOW}📋 Следующие шаги:${NC}" echo -e " cd $TEST_PROJECT" echo -e " npm install $PACKAGE_FILE --force" echo "" fi # Итоговая информация echo "==================================================" echo -e "${GREEN}🎉 Готово!${NC}" echo "" echo -e "${BLUE}📦 Созданный пакет:${NC} $PACKAGE_FILE" echo -e "${BLUE}📍 Полный путь:${NC} $(pwd)/$PACKAGE_FILE" echo "" echo -e "${YELLOW}🚀 Как использовать:${NC}" echo "" echo "1️⃣ Установка в существующий проект:" echo " npm install $(pwd)/$PACKAGE_FILE" echo "" echo "2️⃣ Установка по относительному пути:" echo " cd /path/to/your/project" echo " npm install /path/to/rbac-react-system/$PACKAGE_FILE" echo "" echo "3️⃣ Добавление в package.json:" echo " \"rbac-react-system\": \"file:./rbac-react-system-1.0.4.tgz\"" echo "" echo -e "${BLUE}📚 Подробнее:${NC} docs/LOCAL_TESTING.md" echo "=================================================="