我们使用grunt作为任务运行器,我们使用与openui5开发人员推荐和使用相同的grunt设置。
https://github.com/SAP/grunt-openui5
https://github.com/SAP/openui5/blob/master/docs/tools.md
我们想在构建应用程序时将babel-polyfill添加到项目中(因此我们可以使用最新的javascript功能) 就像你怎么做的那样:例如webpack。 谢谢你提前回答。
答案 0 :(得分:1)
official documentation of babel polyfill中描述了您拥有的选项。当我认为应该使用它们时,我会稍微描述一下。
这取决于你之后如何实际使用该应用程序:它是一个独立的UI5应用程序(即你直接从HTML文件运行它)还是一个Fiori应用程序(即你从Fiori Launchpad运行它)?
如果它是一个独立的应用程序,那么包含babel-polyfill
的最简单,最具侵入性的方法就是通过dist/polyfill.js
标记在您的HTML文件中包含<script>
。
如果它是Fiori应用程序,那么您唯一的机会就是将polyfill添加到您的一个脚本文件中。它必须先运行,所以我会将它添加到您在构建阶段获得的Component-preload.js文件中。要做到这一点&#34; prepend&#34;使用grunt进行操作,您可以使用grunt-contrib-concat插件。
另一种可能性是简单地require
Component模块中的polyfill。您可以在组件文件中的sap.ui.define
调用中执行此操作:
// the oPolyfill parameter most likely will have nothing in it
// as the polyfill most surely does not use the SAP AMD system
sap.ui.define(["./path/to/polyfill"], function(oPolyfill) {
//...
});
使用此策略时,生成的Component-preload.js
文件还将包含polyfill,并且在组件代码开始运行之前将加载polyfill。
请记住,如果您在Fiori Launchpad环境中使用任何这些方法,则polyfill也会影响其他Fiori应用程序。这是不可避免的,因为polyfill修改了babel文档中指定的全局变量:
为了做到这一点,polyfill会添加到全局范围以及像String这样的原生原型。