Дублирование проектов DatoCMS
Привет, ребята! Чтобы сделать Baretheme удобным в сопровождении, мне нужно было иметь возможность создавать новые проекты из набора полей. Когда я начинал, я определял модели и поля, которые мне были нужны, как простые объекты данных JSON. Но с ростом набора типов элементов и полей стало очень сложно писать эти объекты вручную. Вот я и спрашивал себя..
Почему бы мне просто не скопировать существующий проект, который я все равно создавал для себя?
Пока я разрабатываю Baretheme, я постоянно играю с графическим интерфейсом администратора DatoCMS, загружая модели и поля, которые мне нужны. Переход к моему редактору кода и копирование полей, которые я уже создал в этом графическом интерфейсе, казался очень повторяющимся, ненужным и раздражающим. Поэтому я подумал: «В DatoCMS должен быть инструмент для экспорта моего проекта»… и я не смог его найти. Поэтому я создал его с помощью API управления контентом DatoCMS.
На кой черт вам нужно копировать проект без его данных?
Простой ответ: использовать один проект как шаблон для другого. Если вы хотите создать много небольших веб-сайтов с DatoCMS, основанных на одном и том же шаблоне, вы потеряете много времени, копируя модели и поля с одной страницы на другую.
Однако был один момент, который для меня гораздо важнее: я разрабатываю тему для DatoCMS под названием Baretheme, которую я планирую сделать общедоступной. Но я не могу и не хочу ожидать, что люди будут создавать все необходимые модели вручную, также мне лень писать и поддерживать документацию, объясняющую, как создать поле, какие поля вы должны создать и что вы можете сделайте, если у вас возникнут какие-то ошибки.. поэтому копирование проекта без его данных сэкономит мне много времени и позволит предоставить удобную тему для других.
Последний и не менее важный момент заключается в том, что я могу обновлять свою тему. Если мне нужно изменить модель, я должен буду сказать всем, кто использует мою тему. Теперь я просто снова запускаю импортер (который также обновляет существующие данные).
Где я могу получить это?
Так что да, я должен признать, что на данный момент это более или менее доступно только разработчикам, поскольку я опубликовал пакет под названием datocms-tools на Github. Вы также можете установить это из npm через npm install @mmintel/datocms-tools
. Кроме того, на данный момент это очень примитивно, но я не хотел скрывать это от вас, также я хочу сообщить DatoCMS, что они могут сэкономить свое время на более важных функциях :)
Я, вероятно, создам небольшой веб-сайт в ближайшее время, где вы можете просто вставить свой ключ API, передать ему существующий и новый проект, и он передаст данные для вас. Дайте мне знать, если вы заинтересованы в этом, поэтому я, возможно, дам ему немного более высокий приоритет. Если вы обязательно подпишитесь на меня, чтобы не пропустить.
Как это использовать?
Вы можете либо импортировать это как модуль в свой проект, например: import DatoCMSTools from '@mmintel/datocms-tools';
, либо запустить предоставленные мной сценарии, например. через DATOCMS_API_KEY=xxxxx npm run import-models
. Он предоставляет методы для:
- экспорт моделей
- импорт моделей
- экспорт пунктов меню
- импорт пунктов меню
- сброс проекта
Модели означает, что он включает itemTypes
и fields
. Подробнее об этом можно прочитать на проектах README.md
.
Если вам интересно…
Поэтому, если вы хотите узнать, что такое Baretheme на самом деле и как я собираюсь использовать подобные инструменты здесь, вам следует подписаться на эту публикацию ;)
В настоящее время я трачу много времени на разработку, поэтому я не буду сейчас слишком много объяснять. В основном Baretheme построен на Vue.js и Nuxt и предоставляет очень быстрый и простой способ создания статических веб-сайтов, которые извлекают свои данные из DatoCMS.
Самое приятное в этом то, что он будет полностью модульным, то есть вы сможете выбирать компоненты, которые вам нужны на вашем веб-сайте, без установки других. Они создадут для вас необходимые поля и модели и зарегистрируют компонент Vue. Вы также сможете расширить эту тему с помощью собственного набора компонентов. Baretheme также будет бесплатно доступна на Github.
Я знаю, что это все еще очень грубо, но я предоставлю больше информации об этом в будущем, так что обязательно следуйте!
Кстати, если у вас возникли какие-либо ошибки с datocms-tools, пожалуйста, создайте проблему на Github.