К основному контенту

Сообщения

Gatsby + Strapi: выводы

#Gatsby , если честно, не очень порадовал. Что не понравилось: - большой объём (350+ Mb); - куча ошибок, вылезающих буквально изо всех щелей - при установке пакета, при создании проекта, при запуске  ("gatsby develop") ; - требует установки дополнительных пакетов средствами CLI; - пробелы в документации (о некоторых действиях приходится догадываться, читать Stackoverflow, другие источники); Что понравилось: - страницы грузятся действительно быстро! #Strapi , Понравилось всё: - простая установка без ошибок (а если они и есть, то понимаешь, что скорее всего руки кривые); - простой и безошибочный старт проекта; - быстрое вхождение в работу с проектом - создание контента, взаимосвязей и т.д. - полноценная документация; - road map Strapi, после прочтения которого я решил, что стоит подождать выхода полноценной версии Strapi (не альфы), до тех пор проводить эксперименты с этим продуктом и отказаться от Gatsby (по крайней мере, в том виде, в которо...
Недавние сообщения

Strapi: ближайшие перспективы

7 марта 2018 команда проекта Strapi анонсировала новые перспективы развития. Оригинал анонса можно почитать в блоге проекта    (English). Текущее состояние проекта в анонсе довольно самокритично названо как "обезглавленная CMS", возможно потому, что Strapi не содержит инструментов для полноценной работы с контентом, актуальных на сегодняшний день, нет rich-text редактора, и т.д. При том, что Strapi достаточно новое явление для интернет-сообщества, оказывается, что работа над проектом ведется уже более двух лет, причем с использованием различных технологий (например, SQL vs NoSQL - в настоящее время работает на MongoDB), некоторые из них вели в тупик, приходилось всё начинать с самого начала. Основную проблему команда видит в отсутствии расширяемости экосистемы Strapi, что будет учтено в дальнейшем. Будущее проекта разработчики Strapi видят в open-source, развитии сообщества, экосистемы проекта, где сторонние разработчики смогут добавлять собственные плагин...

Gatsby + Strapi - управление данными в CMS

# Управление данными Мы создали API и типы контента. По сути мы уже частично создали CMS - систему управления контентом. В данной статье рассмотрим некоторые возможности управления данными в нашем проекте. Ценность любой CMS заключается с том числе во взаимосвязях между различными типами контента. Настроим эти взаимосвязи, Strapi позволяет сделать это в несколько кликов. В этом нам поможет плагин Content Type Builder, который использовался ранее. Откроем в нем тип контента Product. Он содержит три поля: name (string), description (text), price (float). Построим логическую связь между "Product" и "Vendor", она будет заключаться в следующем: "Одному производителю может принадлежать множество товаров (Products)". Для этого необходимо выбрать на панели  Content Type Builder тип данных Product, созданный нами ранее: Добавляем новое поле типа  Relation : Настраиваем взаимосвязь: Должно получиться "Vendor has many Products". Такж...

Gatsby + Strapi - подготовка окружения для создания CMS #Часть 3

# Создание API На данном этапе наш проект не наполнен. Переходим в панель администратора strapi:  http://localhost:1337/admin. Чтобы создать API, воспользуемся установленным "из коробки" плагином  Content Type Builder . Это мощный UI, который поможет создать API в несколько кликов. В официальной документации предлагается рассмотреть пример e-commerce проекта, так что воспользуемся предложенным вариантом. Создадим тип контента " product " и нажмём Save. Описание добавлять не обязательно, по желанию. Для сохранения созданного типа контента необходимо добавить в него поля. Сделаем это: - поле name типа string (строка); - поле description типа text; - поле price , типа float (number > float). После сохранения на панели "Content Types" появится тип "Product", который можно просматривать и редактировать. Например, добавим в поле description (если это не сделано на этапе создания) описание для типа контента Produc...

Strapi: проблемы #1, созданные своими руками

Перед тем как двигаться дальше, опишу проблему, неожиданно возникшую в результате следующего старта сервера - данные пользователя, которого мы создали в прошлый раз, не сохранились, при старте " strapi start " вместо авторизации предлагается форма создания нового пользователя. Пробуем создать нового пользователя - User2. После этого отключаем всё - MongoDB, NodeJS, перезагружаем компьютер; потом заново делаем старт всех необходимых приложений. И, о чудо, после всех манипуляций User2 сохранился, получается залогиниться. Следующий запуск показал, что сервер не запускается, выдает ошибку БД в консоли mongod.exe :   "Access control is not enabled for the database." mongo.exe : MongoDB shell version v3.6.3 connecting to: mongodb://127.0.0.1:27017 MongoDB server version: 3.6.3 Server has startup warnings: 2018-03-19T23:30:39.702-0700 I CONTROL  [initandlisten] 2018-03-19T23:30:39.702-0700 I CONTROL  [initandlisten] ** WARNING: Access control is no...

Gatsby + Strapi - подготовка окружения для создания CMS #Часть 2

В продолжение темы создания CMS ( часть 1 ) займемся установкой фреймворка, основанного на Node.js. Strapi дает возможность создавать API для работы со статичными данными, которые мы будем создавать с помощью  Gatsby . # Установка Strapi Нам понадобятся: Node.js MongoDB (как установить - смотрим часть 1 статьи) - в консоли Node.js набираем команду " npm install strapi@alpha -g " - установка пакета; - переходим в каталог с проектами (например, " cd projects ", имя каталога ваше собственное); - командой " strapi new mystrapi " создаем новый strapi-проект; - кнопками на клавиатуре "вверх-вниз" выберите СУБД, но настоятельно рекомендуется оставить MongoDB. - перейдите в каталог проекта средствами консоли: " cd mystrapi "; # Запускаем сервер strapi Перед тем как ввести в консоль команду и запустить strapi, убедитесь, что MongoDB установлен и работает (mongod.exe и mongo.exe, смотрим часть 1 статьи, если есть вопросы п...

Polymer Elements: концепция и функции

«There is an element for that», что значит дословно "Для всего есть элемент". А если перефразировать, то получится примерно такое: "Всё есть элемент, если что-то не элемент, смотри пункт первый". Звучит неплохо, но что это значит для разработчика? Концепция реализуется через функции элементов Polymer, коротко рассмотрим их. Google создал набор готовых элементов и разделил их на логические части: App Elements (App) - разметка документа, маршрутизация, локализация (языки), хранение данных. Google Web Components (Go) - набор элементов для взаимодействия c Google API и сервисами Google. Iron Elements (Fe) - основные строительные блоки приложения; включает визуальные элементы (например, кнопка, текстовое поле) и не визуальные компоненты (AJAX, загрузка JSON и др.) Paper Elements (Md) - представляют собой набор UI-компонентов, на практике реализующих принципы материального дизайна. Gold Elements (Au) - конкретные случаи использования в эле...