ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

SAP Fiori开发入门:用VSCode搭建本地环境并运行HelloWorld

SAP Fiori开发入门:用VSCode搭建本地环境并运行HelloWorld 最近一直在折腾 SAP Fiori这应该是很多 SAP 从业者绕不开的一条路。从 SAPUI5 到 Fiori Elements整个技术栈都是基于前端生态的入门第一步就是把 VSCode 开发环境搭好然后跑通一个最简单的 helloworld。这个流程看起来简单但真正动手时Node.js 版本、npm 镜像、脚手架工具、Fiori tools 插件的兼容性会在头一两个小时里轮番考验你。所以我干脆把整个过程重新整理了一遍从选型思路到每一步操作、我踩过的坑以及排查方法都写清楚希望能帮你少走点弯路。这套内容适合刚接触 SAP Fiori、想在自己的电脑上把本地开发环境配置好的朋友也适合之前用 Web IDE 或 Business Application Studio 但想转到 VSCode 的开发者。不需要你有很深的 UI5 基础但最好对 HTML、JavaScript 有一点概念知道 npm 是什么不然在后面装依赖的时候会比较懵。1. 为什么是 SAP Fiori VSCode环境选型背后的考量1.1 SAP Fiori 是什么HelloWorld 为什么值得先做SAP Fiori 是 SAP 推出的一套用户体验设计规范同时在实际开发中通常也指代基于 SAPUI5 或开源版 OpenUI5 来构建 Web 应用的这套技术栈。它强调角色驱动、响应式、简单直观所以你在 SAP S/4HANA 里看到的很多界面尤其是 Fiori Launchpad 里面的那些应用本质上都是跑在 SAPUI5 框架之上的页面。很多新手的第一步是去记 SAPUI5 的生命周期方法、看各种控件的 API但我更建议先做一件事把本地环境跑通生成一个能在浏览器里打开的页面。为什么因为 SAP Fiori 开发链路上有很多隐藏依赖Node.js、npm、UI5 CLI、Git、脚手架工具任何一个环节出问题后面的代码再对也跑不出来。先跑通一个 helloworld就是在小范围内把所有变量都消掉确认环境是好的再往上叠加复杂度才有效率。这也是我当初踩了很多坑之后养成的习惯不管学什么框架第一天先别学语法把“空项目能在本地跑起来”当成唯一目标。1.2 开发环境的主流选择与 VSCode 的优势SAP 官方提供的开发环境有好几种。最早的 SAP Web IDE是基于浏览器的开发工具早期用的人很多但现在已经逐渐被 SAP Business Application Studio简称 BAS取代。BAS 是云端的好处是免配置、预装了很多 SAP 相关的插件坏处是网络不好的时候体验很折磨而且免费额度用完之后要花钱。VSCode 是另一条完全不同的路。它本质上是一个轻量编辑器但通过插件生态几乎可以替代一切。对 SAP Fiori 开发来说微软和 SAP 官方都维护了相关插件比如 SAP Fiori tools可以直接在 VSCode 里生成项目、预览应用、调试代码。再加上 VSCode 启动速度快、内存占用比全家桶低、Git 集成好用说实话在本地做 UI5 学习和项目开发VSCode 是比 BAS 更顺手的选择。另外还有一个很现实的原因VSCode 是通用编辑器。你今天学 SAP Fiori明天可能还要写 Python、C、STM32 或者 Vue3一套编辑器全搞定。网络上有大量 VSCode 配置教程包括设置中文、配置 Python 环境、配置 C/C 环境等等生态足够丰富遇到问题一搜就能找到答案。所以我始终认为学 SAP Fiori 的第一站不应该是某个云端 IDE而是先把 VSCode 这套本地开发环境摸熟。2. 搭建前的准备工具清单与核心概念2.1 需要准备哪些东西在动手之前先把要装的东西列个清单避免做到一半才想起来缺东西VSCode主力编辑器装最新稳定版就行。Node.js必须安装最好选 LTS 版本UI5 工具链是跑在 Node.js 上的。Git必须安装脚手架工具在生成项目时依赖 Git 来初始化仓库。浏览器推荐 Chrome 或 EdgeFiori 应用调试时用开发者工具比较方便。SAP Fiori tools 插件VSCode 扩展市场里搜 SAP Fiori tools装它。Yeoman 和 easy-ui5 生成器用来生成 UI5 项目脚手架后面细说。这里面最容易忽略的是 Git。很多新手只装了 Node.js 就跑去运行生成器结果报错找不到 git然后一脸懵。Yeoman 生成项目的时候会在最后一步自动执行 git init如果没有 Git整个过程直接中断。所以提前把 Git 装好而且确保git --version在命令行里能正常输出版本号。macOS 用户如果之前装过 Xcode Command Line Tools系统会自带 Git但保险起见还是自己装一个最新版。Windows 用户建议一直点默认选项注意在安装过程中选择“从命令行使用 Git”而不是“仅从 Git Bash 使用”这样在 VSCode 的终端里才能直接调用 git。2.2 SAP Fiori 开发环境的关键概念如果你完全没接触过 UI5先别急着看代码先搞清楚几个名词不然看教程会像看天书。SAPUI5 和 OpenUI5SAPUI5 是 SAP 的商业版前端框架功能更全需要连接 SAP 后端才能发挥全部威力。OpenUI5 是同一个框架的开源版本代码结构几乎一样但缺少部分企业级控件本地学习完全够用。用 easy-ui5 脚手架生成的项目默认用的就是 OpenUI5这没问题因为 HelloWorld 不需要任何 SAP 后端资源。Node.js 和 npmNode.js 让 JavaScript 可以在本地运行npm 是它的包管理器用来下载各种工具库。VSCode 里的前端开发本质上就是在 Node 环境下用 npm 安装依赖、运行脚本。UI5 CLIUI5 的命令行工具负责本地启一个 HTTP 服务来跑项目。你可以把它理解成 UI5 版的 dev server这样在浏览器里访问 localhost 就能看到页面而不是傻傻地双击 index.html 用 file 协议打开。脚手架工具Yeoman 是一个项目生成器框架easy-ui5 是专门生成 UI5 项目的模板。它的作用就是帮你把 index.html、manifest.json、Component.js 这些基础文件一次性生成好不用手写一堆样板代码。Fiori Elements 和自由式 UI5Fiori Elements 是基于 OData 服务的配置化开发模式写少量 JSON 配置就能生成 CRUD 应用适合标准场景。自由式 UI5 则是完全手写 View 和 controller灵活但是代码量大。HelloWorld 阶段用自由式就够了理解 MVC 结构更重要。3. 从零开始VSCode 开发环境详细安装与配置3.1 安装 VSCode、Node.js 与 Git先说 VSCode。去官网下载对应系统的安装包Windows 下安装的时候建议把“添加到 PATH”和“在右键菜单中打开”这两个选项选上。很多人装完之后在终端里敲code没反应就是因为 PATH 没配好。装好后打开 VSCode按CtrlShiftP输入language可以看到配置显示语言的选项现在先不管一会装中文插件。接下来装 Node.js。记住一个原则不要追新坚决选 LTS 长期支持版。因为 UI5 工具链对最新的 Node 主版本并不总是第一时间适配选 LTS 最稳。装完后打开终端分别输入node -v和npm -v能看到版本号就说明这一步完成了。如果你之前装过老版本 Node建议先卸载干净再装 LTS不然版本混乱会引发一堆奇怪问题。然后是 Git。Windows 用户装完后建议把默认编辑器改成 VSCode在安装界面的 Select Default Editor 那里选择 “Use Visual Studio Code as Gits default editor”这样 Git 操作遇到冲突时会直接调用 VSCode 解决体验好很多。装好后在终端输入git --version看到版本号就说明没问题。这里要特别强调在继续往下走之前最好把 VSCode、Node.js、Git 这三个东西都装完再开始不要装完一个就跑脚手架。因为 easy-ui5 生成器在生成项目时全会检查少一个就会中途报错到时候你分不清是哪儿的问题。3.2 VSCode 关键插件推荐与配置VSCode 最值钱的不是编辑器本身而是插件生态。做 SAP Fiori 开发有几个插件我是强烈建议装的第一个是中文语言包插件名叫 Chinese (Simplified) (简体中文) Language Pack。装完按CtrlShiftP输入Configure Display Language选择zh-cn然后重启 VSCode 就是中文界面了。不仅看着舒服搜索设置项的时候也更容易看懂。第二个是 SAP Fiori tools这个是官方插件。它提供了一批子插件包括项目模板生成、Fiori 预览、YAML 编辑等。装完之后侧边栏会出现 SAP Fiori 相关的图标点击可以快速创建 Fiori 应用。它和 easy-ui5 脚手架是两条平行的路线后面我会对比讲。第三个是 ESLint 和 Prettier。UI5 社区有自己推荐的代码规范ESLint 帮你检查语法问题Prettier 帮你格式化代码。装完在设置里开启editor.formatOnSave保存代码时自动格式化。具体配置可以在项目根目录创建.prettierrc我一般用下面这组{ semi: true, singleQuote: true, printWidth: 100, tabWidth: 2 }还有一个我强烈建议装的GitLens。它能在代码行上显示这一行最后是谁、在哪个提交里改的对多人协作非常有价值。虽说是 IDE 自带的 Git 已经够用但 GitLens 的体验明显更好。插件装完我还会做两件小事。一是设置终端默认 shellWindows 用户把默认终端从 PowerShell 改成 Command Prompt或者反过来看你自己习惯关键是要统一避免教程里敲的命令在某种终端里不支持。二是创建一个用户代码片段方便以后快速生成一个最小 UI5 View。在 VSCode 里打开命令面板输入Snippets: Configure User Snippets选择New Global Snippets file叫ui5-snippets然后塞进去{ UI5 XML View: { prefix: ui5-view, body: [ mvc:View xmlns:mvc\sap.ui.core.mvc\ xmlns\sap.m\, Text text\${1:Hello World}\ /, /mvc:View ], description: Create a minimal UI5 XML view } }之后在 XML 文件里输入ui5-view再按 Tab就能直接生成一个基础视图省去手打命名空间的麻烦。3.3 验证开发环境是否就绪不要急着生成项目先做一轮环境自检。打开 VSCode 终端依次敲这几个命令node -v npm -v git --version如果都正常再装 UI5 CLI 和 Yeoman 生成器。npm install -g ui5/cli npm install -g yo generator-easy-ui5这一步可能会比较慢如果发现 npm 一直卡住或者报网络错误大概率是网络问题。国内环境下我建议先把 npm 镜像源切到国内镜像执行npm config set registry https://registry.npmmirror.com然后再重新执行安装命令。装完之后分别确认一下版本ui5 --version yo --versionyo --version能输出版本号说明 Yeoman 可用。如果执行yo时报错说找不到命令在 Windows 上是 PATH 没生效重启 VSCode 试试还不行就把 npm 的全局目录加到系统 PATH 里。做完这些开发环境算是基本就绪了可以进入真正的 HelloWorld 环节。4. 实践第一个 SAP Fiori 应用HelloWorld 的完整实现4.1 使用 easy-ui5 脚手架初始化项目首先在 VSCode 里打开一个新文件夹比如D:\fiori-learning。然后在终端执行yo easy-ui5Yeoman 会进入交互式问答有几个关键选项需要注意What is your application name?- 输入helloworldWhat is the namespace for your application?- 输入com.sampleWhich UI5 framework do you want to use?- 选OpenUI5Which UI5 version do you want to use?- 保持默认 LTS 版本Which view type do you want to use?- 选XMLWhere should I create the project?- 选当前文件夹这里有一个常见的坑应用名称和命名空间不要用中划线以外的特殊字符更不要出现空格。命名空间加应用名的组合最终会变成包名比如com.sample.helloworld如果中间有非法字符加载资源的时候会直接 404。另外一个建议是应用名保持小写虽然技术上允许大小写混合但 URI 大小写敏感后面访问资源时会因为记错大小写而来回折腾。生成过程最后会执行 npm install 和 git init耐心等它跑完。如果看到类似Your project is ready的提示说明项目结构已经生成成功。这时候 LT 终端里可能还有npm audit的输出不用管它那是依赖安全的提示不影响项目运行。4.2 理解 UI5 项目结构很多人拿到项目后第一时间去找那个写着 Hello World 的页面但看半天不知道哪里改。先静下心来看结构。easy-ui5 生成的项目大概是这样的helloworld/ ├── webapp/ │ ├── controller/ │ │ └── App.controller.js │ ├── view/ │ │ └── App.view.xml │ ├── index.html │ ├── manifest.json │ ├── Component.js │ └── ... ├── package.json └── ui5.yaml真正要关注的是 webapp 目录。index.html是应用入口浏览器最先加载它manifest.json是应用的配置文件描述应用 ID、依赖库、路由等信息Component.js是组件入口view/App.view.xml是界面定义XML 文件里写哪些控件页面上就显示什么controller/App.controller.js是控制器负责响应界面事件。你不需要背这些文件的作用但至少要形成一种感觉UI5 应用把界面和逻辑分开了。View 里写界面长什么样Controller 里写点击按钮之后干什么。这种 MVC 结构在 SAP Fiori 项目里是通用的今天在 HelloWorld 里见到的这几个文件在大型项目里依然会见到只是文件和目录会更多。xui5.yaml是 UI5 工具链的配置package.json是 npm 脚本配置。如果你看到根目录有这两个文件说明项目是标准的 UI5 工具链项目后面启动服务就看这里的脚本。4.3 编写并运行 HelloWorld接下来改代码。打开webapp/view/App.view.xml正常情况下里面已经有内容了可能是mvc:View xmlns:mvcsap.ui.core.mvc xmlnssap.m App Page titleHello World Text textHello World / /Page /App /mvc:View如果没有就把上面内容覆盖进去。然后启动本地服务在终端执行npm start这个命令底层调用的是 UI5 CLI默认会启动一个本地开发服务器端口通常是 8080。看到终端输出Server started之后浏览器访问http://localhost:8080/index.html如果一个写着 Hello World 的页面出来了恭喜你环境已经彻底通了。到这里SAP Fiori 的第一个应用已经成功跑起来。想让它更有意思一点可以做两个改动。第一个把 Text 的显示内容改成中文“你好SAP Fiori”保存后浏览器自动刷新就能看到。第二个给 Page 加一个图标背景让它看起来更像一个正经应用。不过要注意如果项目里没有现成的 SAP 图标资源OpenUI5 在编译时会尝试从 CDN 加载断网环境下图标就显示不出来这点不追求的话可以先不放。再说一个我当初困惑了很久的点为什么在终端敲npm start能启动而不是敲ui5 serve看package.json里的scripts就明白了。easy-ui5 生成的项目里通常定义了start、serve、build这几个脚本start等价于ui5 serve -o index.html也就是启动服务并自动打开浏览器。理解了脚本定义后面想调整端口就自己改package.json或ui5.yaml就行不用到处找配置入口。4.4 用 SAP Fiori tools 扩展的方式做对比用 easy-ui5 脚手架是一种方式官方更推荐的方式是直接用 VSCode 里的 SAP Fiori tools 插件。这个插件装好后在命令面板里输入Fiori: Open Application Generator会弹出图形化向导。你需要选择模板类型HelloWorld 这种简单页面选 Basic Template 就行然后填应用名称、命名空间、UI5 版本等参数最后选“生成到本地文件夹”插件会帮你生成一套类似的 UI5 项目。这两种方式怎么选我的体会是easy-ui5 更适合学习流程透明每一步在做什么都能看到而且生成的代码结构比较干净。SAP Fiori tools 更适合后续连接 SAP 后端尤其是你想创建 Fiori Elements 应用时向导里会要求配置 OData 服务这是 easy-ui5 不具备的。我的建议是第一个项目别用官方插件老老实实用 easy-ui5先搞明白结构等你理解了之后再切回官方工具会顺畅得多。5. 实操中常见问题与排查技巧5.1 常见报错与解决方案速查表从装环境到跑起 HelloWorld我把最常见的几个报错整理成了表格推荐你把它存下来当速查手册用。报错现象可能原因解决办法yo不是内部或外部命令npm 全局目录没有加入 PATH重启 VSCode将 npm 全局路径配置到系统 PATHgit命令不可用Git 未安装或未选 PATH 选项重新安装 Git安装时勾选“从命令行使用 Git”node -v显示 undefined 或版本过旧Node 版本太老或损坏卸载干净后安装最新 LTS 版npm install卡住或报 network 错误网络不稳定或下载受限设置国内 npm 镜像源后重试ui5不是内部或外部命令UI5 CLI 未全局安装执行npm install -g ui5/cliPort 8080 is already in use8080 端口被其他程序占用换端口在ui5.yaml中修改 server 配置浏览器访问 localhost 显示 404index.html 路径不对或配置文件名错误确认访问的是http://localhost:8080/index.html页面出现空白的 XML 视图View 文件里有语法错误打开 VSCode 的 XML 校验或对照示例检查 namespace关于端口占用我再展开说一下。在终端执行netstat -ano | findstr :8080找到占用端口的 PID然后在任务管理器里结束对应进程就可以。如果这是某个重要服务那就不要强杀直接改端口更稳妥。UI5 项目改端口有两种方式临时方案是在启动命令里加参数ui5 serve -p 8081永久方案是在ui5.yaml里的 server 配置下加port: 8081。第一次做端口配置时建议用命令参数简单直接不影响项目文件。还有一个非常容易被忽视的坑项目路径不能有中文。如果你的项目文件夹放在桌面\新建文件夹这种含中文的路径下UI5 工具在解析路径时可能会报编码错误而且是那种不太容易看懂的报错。我把 Fiori 项目统一放在D:\dev目录下全英文路径一次问题都没出过。5.2 一些值得注意的经验最后分享几条我在实际使用中总结出的经验这些不是文档里会写的但真的很管用。第一学这门技术的第一步永远是先跑通最小闭环。我见过太多人还在研究 SAP Fiori 的理论模型结果连本地服务都不会起。如果你能三分钟把 HelloWorld 跑起来后面学路由、学数据绑定的时候至少敢动手试错而不会因为环境问题劝退。第二命令行输出要认真看但别被吓到。npm 安装的时候会刷一大屏警告很多是无关紧要的。真正要关注的是error开头的报错以及你刚执行的那条命令最终有没有成功。学会抓关键信息能省不少时间。第三VSCode 的调试功能对 UI5 很友好。不要只停留在运行项目的层面试试在App.controller.js里打个断点然后按 F5 启动调试。VSCode 会自动绑定 Chrome 调试端口你能在编辑器里直接看到变量的值。我在排查 UI5 事件绑定问题的时候基本都是靠断点而不是打日志。第四数据绑定才是 Fiori 的核心。HelloWorld 里只有一个静态 Text 控件真正到业务场景中你需要在 View 里用{/modelProperty}这种语法绑定 JSON 模型在 Controller 里创建模型、赋值、更新。建议你在 HelloWorld 跑通之后立刻尝试给 Text 绑定一个模型属性然后把控制器里的值改掉看看页面的反应。这一步做完才算真正开始理解 Fiori 的数据流。还有一个体会SAP Fiori 的学习曲线并没有想象中陡峭难点在于概念多、依赖多。用 VSCode 作为开发环境的好处是整个工具链都是现代前端标配你在网上搜 UI5 问题的时候经常会顺便看到 Vue、React 项目的解决方案原理相通参考价值很高。所以别怕按部就班把环境配好跑起第一个 helloworld后面每一步都会越走越顺。我在实际使用中最后特别爱做一件事给 VSCode 配好一套自己的快捷键和工作区设置比如侧边栏位置、缩进、主题、代码片段然后把这些偏好写成一份settings.json放到团队共享的配置里。这种做法能显著降低日常开发的心智负担。总之先把环境搭明白你的 SAP Fiori 之旅才算真正开始。
返回列表