neos / neos-ui
使用 React 编写的 Neos CMS UI
Requires
- neos/neos: ^9.0.0 || 9.0.x-dev
- neos/neos-ui-compiled: 9.0.0-beta13
- 9.0.x-dev
- 9.0.0-beta13
- 9.0.0-beta12
- 9.0.0-beta11
- 9.0.0-beta10
- 9.0.0-beta8
- 9.0.0-beta3
- 9.0.0-beta2
- 9.0.0-beta1
- 8.4.x-dev
- 8.3.x-dev
- 8.3.9
- 8.3.8
- 8.3.7
- 8.3.6
- 8.3.5
- 8.3.4
- 8.3.3
- 8.3.2
- 8.3.1
- 8.3.0
- 8.2.x-dev
- 8.2.14
- 8.2.13
- 8.2.12
- 8.2.11
- 8.2.10
- 8.2.9
- 8.2.8
- 8.2.7
- 8.2.6
- 8.2.5-beta2
- 8.2.5-beta1
- 8.2.4
- 8.2.3
- 8.2.2
- 8.2.2-beta1
- 8.2.1
- 8.2.1-beta2
- 8.2.1-beta1
- 8.2.0
- 8.2.0-beta8
- 8.2.0-beta7
- 8.2.0-beta2
- 8.2.0-beta1
- 8.1.x-dev
- 8.1.14
- 8.1.13
- 8.1.12
- 8.1.11
- 8.1.10
- 8.1.9
- 8.1.8
- 8.1.7
- 8.1.6
- 8.1.5
- 8.1.4
- 8.1.3
- 8.1.2
- 8.1.1
- 8.1.0
- 8.0.x-dev
- 8.0.17
- 8.0.16
- 8.0.15
- 8.0.14
- 8.0.13
- 8.0.12
- 8.0.11
- 8.0.10
- 8.0.9
- 8.0.8
- 8.0.7
- 8.0.6
- 8.0.5
- 8.0.4
- 8.0.3
- 8.0.2
- 8.0.1
- 8.0.0
- 7.3.x-dev
- 7.3.22
- 7.3.21
- 7.3.20
- 7.3.19
- 7.3.18
- 7.3.17
- 7.3.15
- 7.3.14
- 7.3.12
- 7.3.11
- 7.3.10
- 7.3.9
- 7.3.8
- 7.3.7
- 7.3.6
- 7.3.5
- 7.3.4
- 7.3.3
- 7.3.2
- 7.3.1
- 7.3.0
- 7.2.x-dev
- 7.2.8
- 7.2.7
- 7.2.6
- 7.2.5
- 7.2.4
- 7.2.3
- 7.2.2
- 7.2.1
- 7.2.0
- 7.1.x-dev
- 7.1.10
- 7.1.9
- 7.1.8
- 7.1.7
- 7.1.6
- 7.1.5
- 7.1.4
- 7.1.3
- 7.1.2
- 7.1.1
- 7.1.0
- 7.0.x-dev
- 7.0.12
- 7.0.11
- 7.0.10
- 7.0.9
- 7.0.8
- 7.0.7
- 7.0.6
- 7.0.5
- 7.0.4
- 7.0.3
- 7.0.2
- 7.0.1
- 7.0.0
- 5.3.x-dev
- 5.3.18
- 5.3.17
- 5.3.16-beta1
- 5.3.15
- 5.3.14
- 5.3.13
- 5.3.12
- 5.3.11
- 5.3.10
- 5.3.9
- 5.3.8
- 5.3.7
- 5.3.6
- 5.3.5
- 5.3.4
- 5.3.3
- 5.3.2
- 5.3.1
- 5.3.0
- 5.2.x-dev
- 5.2.9
- 5.2.8
- 5.2.7
- 5.2.6
- 5.2.5
- 5.2.4
- 5.2.3
- 5.2.2
- 5.2.1
- 5.2.0
- 5.1.x-dev
- 5.1.13
- 5.1.12
- 5.1.11
- 5.1.10
- 5.1.9
- 5.1.8
- 5.1.7
- 5.1.6
- 5.1.5
- 5.1.4
- 5.1.3
- 5.1.2
- 5.1.1
- 5.1.0
- 5.0.x-dev
- 5.0.13
- 5.0.12
- 5.0.11
- 5.0.10
- 5.0.9
- 5.0.8
- 5.0.7
- 5.0.6
- 5.0.5
- 5.0.4
- 5.0.3
- 5.0.2
- 5.0.1
- 5.0.0
- 4.0.x-dev
- 4.0.14
- 4.0.13
- 4.0.12
- 4.0.11
- 4.0.10
- 4.0.9
- 4.0.8
- 4.0.7
- 4.0.6
- 4.0.5
- 4.0.4
- 4.0.3
- 4.0.2
- 4.0.1
- 4.0.0
- 3.x-dev
- 3.8.1
- 3.8.0
- 3.7.0
- 3.6.1
- 3.6.0
- 3.5.0
- 3.4.0
- 3.3.0
- 3.2.1
- 3.1.0
- 3.0.2
- 3.0.1
- 3.0.0
- 2.x-dev
- 2.9.2
- 2.9.1
- 2.9.0
- 2.8.1
- 2.8.0
- 2.7.0
- 2.6.1
- 2.6.0
- 2.5.0
- 2.4.0
- 2.3.0
- 2.2.1
- 2.2.0
- 2.1.0
- 2.0.2
- 2.0.1
- 2.0.0
- 1.x-dev
- 1.4.1
- 1.4.0
- 1.4.0-beta
- 1.3.4
- 1.3.3
- 1.3.2
- 1.3.1
- 1.3.0
- 1.2.3
- 1.2.2
- 1.2.1
- 1.2.0
- 1.1.2
- 1.1.1
- 1.1.0
- 1.0.14
- v1.0.13
- 1.0.12
- 1.0.11
- 1.0.10
- 1.0.9
- 1.0.8
- 1.0.7
- 1.0.6
- 1.0.5
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.0-beta8
- 1.0.0-beta6
- 1.0.0-beta5
- 1.0.0-beta4
- 1.0.0-beta3
- 1.0.0-beta2
- 1.0.0-beta1
- 1.0.0-beta0
- 0.0.1
- v0.0.0
- dev-task/use-saucectl
- dev-bugfix/neos-logo-icon-width
- dev-feature/4726-extract-workspace-metadata-and-user-assignment-to-neos
- dev-feature/3771-support-finding-nodes-by-id
- dev-84-fix-e2e-tests
- dev-bugfix/3839-ckeditor-warn-dialog-before-formatting-getting-lost-__build__
- dev-bugfix/3839-ckeditor-warn-dialog-before-formatting-getting-lost
- dev-bugfix/references-on-copy
- dev-task/remove-ui-script-tag-neos-9-followup
- dev-bugfix/2092-resolve-resource-uris-on-server
- dev-feature/multi-app/02-loosen-the-menu
- dev-bugfix/optimise-ui-flowqueries
- dev-feature/conflict-resolution-03/rebase-during-publish
- dev-task/centralize-i18n
- dev-task/centralize-error-handling
- dev-task/update-contributing-readme
- dev-userWorkspaces
- dev-workspaceAdjustments
- dev-3587-defaultRelationDistributionStrategy
- dev-bugfix/valueObjectSupportInNodePropertyConverterService
- dev-bugfix/3477-infinite-loading-indicator
- dev-bugfix/explicitValueObjectSupportForNodeProperties
- dev-feature/seriousCkInlineMode
- dev-feature/inspectorDefaultGroup
- dev-feature/workspaceSync
- dev-bugfix/3556/show-resize-icon-on-safari
- dev-task/3118/remove-plow-js
- dev-4549-separateReferencesAndProperties
- dev-task/90-remove-nodetypemanager-from-node-4515
- dev-catchEmptyNodeNames
- dev-nodeTypeFallbackHandling
- dev-bugfix/editorWithImplausibleValue
- dev-bugfix/3531-nodeCreationDialogPreventAccidentalClose
- dev-bugfix/3520-selectbox-current-value-doesnt-match-options
- dev-90-replace-node-inbackend-usage
- dev-task/makee2eTestsMoreIsolated
- dev-task/improveDocumentTitleNodeCreationHandler
- dev-feature/fallbackToRawModeForContents
- dev-90-performance-speedup-during-individual-publish
- dev-bugfix/resolve-testing-errors
- dev-feature/improved-tree
- dev-refactor-ts-insert-mode-selector
- dev-feature/node-creation-dialog-icons
- dev-90/editPreviewModeSupport
- dev-bugfix-3391-creation-dialog-time-now
- dev-rb/react-ui-components-ts-rewrite--toggable-panel
- dev-task/remove-legacy-editor-name-support
- dev-feature/esbuild-yarn-pnp
- dev-feature/yarn-pnp-mode
- dev-task/increase-node-version
- dev-dependabot/npm_and_yarn/eventsource-1.1.2
- dev-90-simplify-nodetypeconstraints
- dev-bugfix/use-flush-by-tags-in-neos-8
- dev-mhsdesign-docs-component-wiring
- dev-feature-add-custom-error-messages
- dev-dimaip-more-browsers
- dev-bugfix/error-after-discard-all-when-editing
- dev-fix/2922-cache
- dev-task/remove-resolveshortcuts-use
This package is auto-updated.
Last update: 2024-09-20 09:49:32 UTC
README
Neos CMS 接口,使用 ReactJS 和许多其他有趣的技术编写。
版本控制
此存储库遵循 Neos 本身相同的版本控制方案。发布路线图可在此处找到 这里
这意味着
- 所有错误修复都应用于维护的最低分支
- 所有新功能仅添加到 8.4 和 9.0 分支
- 新的小版本和主要版本将与 Neos/Flow 同步发布。错误修复版本可能独立发布
当前维护的版本
- NeosCMS 版本 8.3: 分支 8.3
- NeosCMS 版本 8.3: 分支 8.4
- NeosCMS 版本 9.0: 分支 9.0
- 最新开发目前在 8.4 和 9.0 分支进行
仅包含安全更新的版本
- NeosCMS 版本 7.3: 分支 7.3
- NeosCMS 版本 8.0: 分支 8.0
- NeosCMS 版本 8.1: 分支 8.1
- NeosCMS 版本 8.2: 分支 8.2
浏览器支持
新界面支持所有evergreen(即自我更新)浏览器,包括:Chrome,Firefox,Safari,Edge,Opera和其他基于webkit的浏览器。
如果您在支持的任何浏览器中发现了错误,请报告它们!
特性
- 闪电般的快速 Yarn 3 + ESbuild 堆栈
- https://www.neos.io/features/editing-content.html
- https://www.neos.io/features/inline-editing-true-wysiwyg.html
安装和使用
UI 已在基本 Neos 发行版中。在 Packagist 上通过 neos/neos-ui
可用。
更新
composer update neos/neos-ui
安装最新开发版本
为了尝试新 UI,我们建议您运行定期发布的测试版。然而,如果您想保持最新状态或想帮助开发,您将需要 9.0.x-dev
版本。您可以使用以下命令安装最新版本:
composer require neos/neos-ui-compiled:9.0.x-dev neos/neos-ui:9.0.x-dev
贡献
请遵循有关在 OSX 和 Linux 上贡献的相应指南。
在 Windows 上
-
请确保已安装相关版本(见上文)。
-
请安装 Docker for Windows。
-
运行
docker-compose up
。 -
在
Configuration/Settings.yaml
中,设置以下属性以禁用预编译文件
Neos: Neos: Ui: frontendDevelopmentMode: true
在 OSX / Linux 上
要开始在 OSX / Linux 上贡献,请按照以下步骤操作
-
请确保已安装相关版本(见上文)。
-
我们需要 Chrome 以及
yarn
(https://yarn.npmjs.net.cn/en/) 命令和 GNU Make(https://gnu.ac.cn/software/make/) 在您的系统上安装。 -
当前支持的
node
版本定义在.nvmrc
文件中。如果您已安装 nvm,只需从项目目录运行nvm install && nvm use
。 -
在
Configuration/Settings.yaml
中,设置以下属性以禁用预编译文件
Neos: Neos: Ui: frontendDevelopmentMode: true
- 运行初始化脚本
make setup
PR 和提交消息指南
请参阅我们关于如何为您的贡献编写有意义描述的指南 (链接)。
执行向上合并
要执行向上合并,请运行以下命令
# review and `git commit`
git checkout 8.0 && git fetch && git reset --hard origin/8.0 && git merge --no-ff --no-commit origin/7.3
# review and `git commit`
git checkout 8.1 && git fetch && git reset --hard origin/8.1 && git merge --no-ff --no-commit origin/8.0
# review and `git commit`
git checkout 8.2 && git fetch && git reset --hard origin/8.2 && git merge --no-ff --no-commit origin/8.1
# review and `git commit`
git checkout 8.3 && git fetch && git reset --hard origin/8.3 && git merge --no-ff --no-commit origin/8.2
# review and `git commit`
git checkout 8.4 && git fetch && git reset --hard origin/8.4 && git merge --no-ff --no-commit origin/8.3
# review and `git commit`
git checkout 9.0 && git fetch && git reset --hard origin/9.0 && git merge --no-ff --no-commit origin/8.4
# review and `git commit`
开发命令
编写单元测试
单元测试使用 jest 执行。要在您的 shell 中运行单元测试,请执行 make test
。
添加单元测试相对简单,只需在您的更改/新功能的同一树级别创建一个名为 [filename].spec.js
的文件,karma 将执行 spec 文件中找到的所有测试,除此之外,只需参考现有的测试即可。
如果您只想运行特定的测试而不是整个测试套件,请使用 it.only(() => {})
和 describe.only(() => {})
。
集成测试
要本地设置端到端测试,您需要执行与 CircleCI 工作流程 中描述的相同操作,即获取 测试分发 并在其中执行 composer install
,将正确的分支放入 Neos.Neos.Ui 文件夹中,并使用测试分发中的 Settings.yaml(或调整它)中的相同配置运行 web 服务器和 mysql 服务器。
要在 macOS catalina 或更高版本上执行端到端测试,您需要允许屏幕录制。打开 '系统偏好设置 > 安全与隐私 > 隐私 > 屏幕录制',并在应用程序列表中检查 'TestCafe 浏览器工具'。
make test-e2e-docker
带有 e2e 测试和 docker 的本地开发
为了加快 e2e-test 工作流程/反馈循环,您可以在 docker 设置中启动要测试的系统,并针对该系统运行测试
make start-neos-dev-instance
(在1Dimension
场景中启动一个包含要测试的系统的 docker 设置并保持运行)- neos 开发实例可在
localhost:8081
访问 - 要进入容器,请运行
docker compose -f Tests/IntegrationTests/docker-compose.neos-dev-instance.yaml exec php bash
使用
yarn run testcafe <browser> <testFile> <optional flags>
- 例如,这将在 chrome 中运行所有测试:(注意:从 Chrome 127 版本开始,需要 --disable-search-engine-choice-screen)
yarn run testcafe chrome:--disable-search-engine-choice-screen Tests/IntegrationTests/Fixtures/1Dimension
- 一些有用的可选标志包括
-T 'sidebars'
- 使用模式 grep 测试并只执行这些测试--selector-timeout=10000
- 如果您正在处理 UI 的异步部分,则这可能会帮助防止竞争条件--assertion-timeout=30000
- 如上所述--debug-on-fail
- 当断言失败时,您可以调试应用程序的状态
- 例如,这将在 chrome 中运行所有测试:(注意:从 Chrome 127 版本开始,需要 --disable-search-engine-choice-screen)
调试集成测试
- 通过 Sauce Labs 查看录制。您可以在测试输出的开头找到 URL。
- 在构建工件中观察 Flow 异常和日志。
- 您可以通过 CircleCI 界面触发一个启用了 SSH 的构建,然后登录。
发布
您只需要触发 Jenkins 发布您想要发布的版本。Jenkins 完成后,您需要在 GitHub 上发布新版本。
许可证
请参阅 LICENSE