
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
React Starter App 是一个React应用开发启动模板,旨在提供标准化的开发环境、编码规范和自动化部署流程。该模板集成了ESLint、Prettier等开发工具,定义了详细的编码标准,并通过GitHub Action实现Docker镜像的自动构建与推送,帮助开发团队快速搭建符合规范的React应用项目。
适用于需要快速启动React应用开发的团队或个人,尤其是需要遵循统一编码规范、实现自动化部署的开发场景。可作为企业内部React项目的标准化启动模板,确保团队开发效率和代码质量。
NPM依赖管理
npm install PackageName@version 指定版本安装Prettier配置
Prettier本身不包含所有必要的配置来强制ESLint规则和编码标准,因此结合ESLint的--fix命令与Prettier使用:
"editor.defaultFormatter": "rvest.vs-code-prettier-eslint""editor.formatOnSave": truenpm run prettierESLint配置
配置"Prettier ESLint"后,.eslintrc.json文件将自动作为ESLint配置文件加载。
触发条件
当代码推送到以下分支时触发Action,镜像将以分支名作为标签:
配置步骤
DOCKER_USERNAME:Docker Hub仓库的授权用户名DOCKER_PASSWORD:上述用户名的密码DOCKER_REPO_REGISTRY_NAME:例如:claytoncountysdDOCKER_REPO_NAME:例如:react-starter-app_Flag结尾(如variableNameFlag)List结尾(如nameOfVariableList)ComponentName而非componentName)var声明变量,静态变量用const,非静态变量用letuseMemo简化仅用于从其他值派生值的有状态逻辑propTypes和defaultProps减少非语义化的变量验证代码/* C风格 */注释;使用/** */注释标注prop类型(可能需要jsdocs以获得智能提示);使用/ /注释作为标题或标记代码的逻辑部分;测试时注释代码使用标准// C++风格注释(确保清理),例如:javascript/ prop types / Form.propTypes = { /** * 标题,在适用时显示在表单框架中 */ title: PropTypes.string, /** * 初始表单数据,例如:data={{firstName: "Bill", lastName: "Jameson", enabled: true}} */ data: PropTypes.object, /** 用于调试目的 * 显示所有信息——当前表单数据、当前表单验证、当前表单状态、表单初始数据 */ showInfo: PropTypes.bool, /** 用于调试目的 * 显示当前表单数据 */ showData: PropTypes.bool, /** 用于调试目的 * 显示当前表单验证 */ showValidation: PropTypes.bool, /** 用于调试目的 * 显示当前表单状态 */ showStatus: PropTypes.bool, /** 用于调试目的 * 显示表单初始数据——或提交后的最后提交数据 * 重置表单会将当前表单数据更改为该值 */ showInitialData: PropTypes.bool, /** * 指示表单是否包含默认提交按钮 */ submitButton: PropTypes.bool, /** * 指示表单是否包含默认重置按钮 */ resetButton: PropTypes.bool, /** * 指示表单是否包含默认清除按钮 */ clearButton: PropTypes.bool, /** * 指示成功提交后(之后)要执行的操作 */ onSubmit: PropTypes.func, /** * 如果为true,验证错误仅在首次提交尝试后显示 */ validateOnlyAfterSubmit: PropTypes.bool, /** * 如果为true,即使数据未更改(未修改)也可以提交表单 */ canSubmitUnchanged: PropTypes.bool, /** * 不要将子元素作为props传递。而是将子元素嵌套在开始和结束标签之间。 */ children: PropTypes.oneOfType([PropTypes.object, PropTypes.array]), };
javascriptconst Component = props => { const { prop1, prop3 } = props; return <Child {...props} />; };
javascriptconst Component = props => { const { prop1, prop3 } = props; const child1Props = useMemo(() => { child1prop1 = props.uniqueProp1; }, [props]); const child2Props = useMemo(() => { child2prop1 = props.uniqueProp2; }, [props]); return ( <> <Child1 {...child1Props} /> <Child2 {...child2Props} /> </> ); };
(以下示例中,我们将创建一个名为"new-react-app"的新仓库)
(可选)在GitHub上创建一个新的空白仓库,不进行任何配置更改:
在本地PC上执行以下命令(例如在repos文件夹中):
bash# 克隆react-starter-app仓库并命名为new-react-app git clone https://github.com/RicWilliamsCC/react-starter-app new-react-app # 进入新目录 cd new-react-app # 如果正在开发或测试init-script本身,切换到功能分支 git checkout (功能分支名称) # 测试时,更新scripts/init-app.js顶部设置中的REMOTE_TARGET_URL # 运行初始化脚本 npm run init-app
运行npm run init-app后,根据提示执行:
验证应用是否正常运行:
bashnpm run start
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务