Перейти к содержимому

Bolt.new: как скачать код проекта и что делать с ним дальше

Bolt.new собирает проект целиком в браузере, и это же создаёт вопрос: где, собственно, лежит код и как его оттуда достать. Разберём варианты и то, что с полученным архивом делать дальше.

Что вообще можно забрать

Скачивание проекта. Внутри платформы есть выгрузка исходников. Забирается то, что вы видите в файловом дереве: разметка, стили, скрипты, конфигурация сборщика.

Связка с GitHub. Проект уезжает в ваш репозиторий, и дальше это обычный проект: клонируете, правите в своём редакторе, выкатываете куда хотите. Надёжнее скачивания по одной причине: копия оказывается в месте, которое принадлежит вам, и переживает любые изменения на стороне платформы.

Развёртывание одной кнопкой. Отдельная история, которую часто путают с выгрузкой. Развёртывание кладёт собранный результат на хостинг платформы или партнёра. Код при этом остаётся там же, где был, и «у меня сайт в интернете» не означает «у меня есть исходники».

Что даёт каждый способ

Признак Скачивание GitHub Развёртывание
Исходники у вас Да Да Нет
История изменений Нет Есть Нет
Переживает закрытие аккаунта Да Да Нет
Можно отдать разработчику Да Да, вместе с историей Нет
Нужен шаг сборки перед выкладкой Да Да Нет, уже собрано
Что вы на самом деле получили Папку Проект Ссылку

Последняя строка и есть причина путаницы. Развёртывание даёт видимый результат быстрее всех, поэтому кажется, что задача решена. Но исходников оно не отдаёт, и в момент, когда доступ к платформе пропадёт, у вас останется только адрес, который перестанет открываться.

Проект скачался, а запускать его нечем

Главное отличие Bolt.new от простого генератора страниц в том, что он собирает полноценный проект со сборщиком. Это плюс для разработки и лишний шаг при переезде.

Скачанный архив обычно содержит package.json, папку с исходниками и конфигурацию. Чтобы получить из этого работающий сайт, нужен шаг сборки: установить зависимости и собрать проект. На выходе появится папка с готовыми файлами, и вот её уже принимает любой статический хостинг.

Если этот шаг делать некому, ситуация выглядит так: файлы есть, сайта нет. Это не поломка, это нормальное устройство проекта на сборщике, но узнать об этом лучше до отказа от подписки.

Почему в архиве нет папки с зависимостями и это правильно

Первое, что удивляет при распаковке: проект вроде бы весь, а папки node_modules нет. Кажется, что выгрузка неполная.

Она полная. Эта папка не является частью проекта, она восстанавливается из списка в package.json одной командой на вашей машине. Весит она при этом сотни мегабайт и содержит файлы, собранные под конкретную операционную систему. Класть её в архив значило бы раздуть выгрузку в десятки раз и привезти вам чужие бинарники, которые на вашей машине могут просто не запуститься.

То же касается папки с результатом сборки. Её тоже нет, и по той же причине: она получается из исходников, а не хранится.

Практический вывод один: наличие package.json со списком зависимостей важнее наличия самих зависимостей. Если этого файла в архиве нет, вот тогда выгрузка действительно неполная, и восстановить список будет сложно.

Что означает сборка в браузере для переезда

Bolt.new выполняет проект прямо в браузере, а не на удалённой машине. Для работы это удобно: ничего не надо ставить, всё запускается мгновенно. Для переезда из этого следует одна вещь, о которой стоит знать заранее.

Среда, в которой проект работал у вас на глазах, была браузерной. На вашем компьютере или на сервере среда будет обычной. В большинстве случаев разницы нет, но если проект использовал что-то специфичное для этой браузерной среды, на обычной машине оно поведёт себя иначе. Проверяется это ровно тем же способом: собрать и запустить у себя до того, как отказываться от подписки.

Четыре проверки для любого выгруженного проекта

Проверьте, что зависимости ставятся. Установка зависимостей на чужой машине выявляет половину проблем сразу: приватные пакеты, привязку к конкретной версии среды, отсутствующие файлы.

Найдите обращения к серверу платформы. Поиск по строке http в исходниках. Если приложение ходит за данными в инфраструктуру платформы, то без активного аккаунта оно работать перестанет, сколько бы файлов у вас ни лежало.

Проверьте переменные окружения. Обычно в архиве есть образец файла с переменными и нет их значений, и это правильно. Значит, перед запуском их нужно будет заполнить своими, а ключи, которые лежали на платформе, лучше сразу поменять.

Убедитесь, что приехало всё. Сравните дерево файлов в архиве с тем, что видите в платформе. Пропущенная папка обнаруживается в самый неудобный момент.

Как выглядит шаг сборки, если делать его самому

Не пугайтесь, это три команды, и ничего не сломается: сборка не трогает исходники, она кладёт результат рядом.

Ставите Node.js, открываете терминал в папке проекта и выполняете установку зависимостей, потом сборку. В большинстве проектов это npm install и npm run build. После этого рядом появляется папка с результатом, обычно dist или build, и вот её содержимое и есть ваш сайт.

Что может пойти не так и что это значит.

Ошибка про версию Node. Проект собран под другую версию среды. В package.json обычно указано, какая нужна.

Ошибка про недоступный пакет. Зависимость приватная или её вычистили из реестра. Для проекта, собранного платформой, это редкость, но встречается.

Сборка проходит, а страница пустая. Почти всегда не заполнены переменные окружения. Ищите файл с образцом переменных и заполняйте своими значениями.

Если ни один из трёх пунктов не помог, это тот случай, когда полчаса разработчика стоят дешевле вечера догадок.

Что делать с проектом дальше

Собранный проект без бэкенда живёт на любом статическом хостинге: Netlify, Cloudflare Pages, GitHub Pages, обычный хостинг по FTP. Это бесплатно или почти бесплатно и не требует ничего, кроме папки с файлами.

Если у проекта есть серверная часть, переезд сложнее: нужно поднять её отдельно и переключить адреса. Здесь честный совет: если серверную часть писала платформа и вы в ней не разбираетесь, оцените работу разработчика на несколько часов, а не пытайтесь угадать.

Отдельно про домен. Порядок действий такой: сначала выложить проект на временный адрес хостинга, проверить его целиком, и только потом менять записи у регистратора. Пока домен смотрит на прежнее место, любую поломку можно чинить спокойно. Старую подписку отменяйте не в день переезда, а через неделю: вернуть настройки домена назад займёт минуты, а восстановить удалённый проект уже не выйдет. Подробный порядок переключения с проверочным списком разобран в отдельной статье про перенос на свой хостинг.

Как это устроено у нас

Выгрузка не привязана к тарифу. Забрать свою работу можно на любом плане, отдельной платы за эту возможность нет.

Сборка без шага сборки. Сайт и игра приезжают готовыми к раздаче: открывается двойным щелчком, кладётся на статический хостинг папкой целиком. Приложение на React приезжает исходниками плюс уже собранной версией, так что положить его куда-то можно сразу, а править по-прежнему в исходниках.

В архиве лежит README на вашем языке с тем, куда именно это класть, а не только список файлов.

Оговорка, которую мы не прячем. Выгруженная игра тянет по сети движок отрисовки, а выгруженное приложение React, оба с zugo.dev. Ваш код от нас не зависит, но эти библиотеки приезжают извне, и в README написано, как скачать их рядом и поправить пути, чтобы папка стала автономной.

Соседние разборы: выгрузка кода из Lovable и размещение забранного проекта на своём хостинге.

Коротко

Скачивание отдаёт исходники, связка с GitHub отдаёт их надёжнее, развёртывание не отдаёт вовсе. Проект со сборщиком требует шага сборки, прежде чем станет сайтом. И до отказа от подписки стоит потратить десять минут на четыре проверки: ставятся ли зависимости, есть ли обращения к платформе, заполнены ли переменные, всё ли приехало.

← Все статьи