作为创建 CMS 驱动应用程序的工具,KeystoneJS 和 Strapi 之间的主要区别是什么?

问题描述 投票:0回答:4

当我想在前端使用 Vue/React/Angular 来实现 SPA 时,我倾向于使用 Keystone(按原样)作为标准的、服务器驱动的多页面应用程序和 Strapi ?由于它已经内置了模板/视图,Keystone 可能会更快获得 MVP?还要别的吗?

web-applications content-management-system frontend keystonejs strapi
4个回答
15
投票

我在多个项目上使用 KeystoneJS v5 已经有一年多了。 我和你有同样的问题,我选择了 Keystone 而不是 Strapi(即使 git star 和社区更高),因为我正在寻找一个基于简单文件的后端生成器。

这句话表达了它:

schema => ({AdminUI, GraphQLApi})

我需要快速定义(然后轻松修改)后端的信息架构,并看到它自动反映在 CMS 和 API 中。

(Strapi users, correct me if I'm wrong)
我看到 Strapi 更多地专注于构建拖放(无代码)方式来构建此后端。我找不到直接使用 Strapi 处理文件并获取我正在寻找的 CMS 和 API 的方法。在我看来,它是为那些想要后端但不想编写代码的人构建的。

我宁愿使用代码编辑器功能(查找/替换、多光标)来定义和修改我的架构,而不是浏览器上的拖放组件。还可以使用以前的项目作为我的基础代码来构建新的项目。

我的 keystone 项目有一个非常简单的文件结构,其中大多数都是开箱即用的,并且制作自定义突变、AdminUI 组件、挂钩和数据播种非常简单。

这是一个例子:

├── index.js  // imports entities, hooks, initial-data, submodules
├── initial-data.js // imports seed/index.js and orchestastes how to create data 
├── entities // for each entity (list): field types, access control, hooks, adminUI configs
│   ├── index.js
│   ├── Users.js 
│   ├── Books.js
│   ├── Loans.js
│   ├── Authors.js
│   ├── ...
│   └── Categories.js
├── extendGraphqlSchema // pretty easy to add new custom Graphql types, mutations and queries  
│   ├── index.js
│   ├── types
│   ├── queries
│   └── mutations
├── hooks 
│   ├── index.js
│   ├── user_beforeUpdate.js
│   ├── book_validateInput.js
│   ├── ...
│   └── loan_afterDelete.js
├── keystone-media-server // submodule I use on many Keystone projects
│   ├── adapters
│   ├── fields
│   ├── lists
│   ├── resolvers
│   └── seed
└── seed // list of functions to create a complete data example to test
    ├── index.js
    ├── createUsers.js
    ├── createBooks.js
    ├── createLoans.js
    ├── createAuthors.js
    └── createCategories.js

6
投票

对 KeystoneJS 不太熟悉,但从外观上看它们非常相似。 Strapi 看起来有一个更可扩展的 API,但总体概念相同。我已经在几个项目中使用了 Strapi,它的使用速度很快,您可以在不到一个小时的时间内在 Heroku 上安装 Strapi,并提供完整构建的架构。

两者之间的一件事是 GraphQL 支持,Strapi 正在大力推动涉足 GraphQL 世界,我相信这是为了跟上 Tipe.io 的步伐。

设置 GQL + Strapi + Nuxt / Next 对于创建 SSR 应用程序非常有用。


4
投票

在撰写本文时(此问题发布近几年后),Keystone 5 面向 graphql,因此这不再是两者之间的主要区别。 Keystone 4 仍作为 REST 优先框架进行维护。

Strapi 现在是 GQL 优先,并且拥有更大的社区。


0
投票

没有使用过keystone,只使用过Prisma,这是keystone的基础技术。它为您提供了一流的 API 来处理关系。

Strapi 另一方面,使用构建在 Knex 之上的 DIY 关系解析机制。生成的数据库结构复杂。上帝会帮助您与自己的客户手动执行关系内部的附件更新。另一件值得一提的重要事情是管理面板不支持移动设备。

© www.soinside.com 2019 - 2024. All rights reserved.