rsa*_*rns 5 javascript rrule underscore.js
我正在尝试在VMWare VRO中创建一个自定义操作,该操作使用JS作为其脚本逻辑。我试图将两个库嵌入到单个代码块中,以便可以使用它们。不幸的是,VRO本身没有使用包含或库的概念,因此所有这些都必须放在同一巨型脚本块中。
我想使用这个RRULE JS库:
https://github.com/conrad-vanl/rrule
我可以将其嵌入一个代码块中没问题。但这取决于下划线库。
https://github.com/jashkenas/underscore
没有抛出以下错误,我似乎无法嵌入其中:
TypeError:无法从未定义(未命名的脚本#2293)读取属性“ n”
我想这与下划线库的格式化方式有关。这是我目前试图同时嵌入两者的要点。
https://gist.github.com/rsaturns/aceceabb87fc28879ffdb214425a2a15
如果我可以将RRULE和Underscore库都嵌入到同一文件中,我想我将能够使它正常工作。
小智 0
VRO 不使用常规 JavaScript 引擎,例如在浏览器或服务器端 Node.js 中运行的引擎。它使用基于 Java 的 Rhino 引擎,因此它与常规 JavaScript 有很多奇怪的差异。
与常规 JS 相比,语法和行为有相当多的差异,因此可以预见,很多您认为应该有效的东西在 VRO 中将不起作用。
VRO js 的一些限制:
如果您想在 VRO 中使用外部库,则需要考虑一些事项,但以下是最重要的:
如果您的库基于 ES5 之前的 JavaScript,并且不使用任何特殊的、特定于浏览器的或特定于 Node.js 的 API,那么它应该可以在 VRO 中开箱即用。
如果没有,那么您可以尝试一些方法来让它在 VRO 中工作:
eval()
或Function
解析和评估库代码。然后它将可以在工作流程/操作的其余部分中使用。(我推荐这种方法,因为它最不容易出错,只需要1-3行代码,并且更具可读性)一般来说,这对我有用,但我不能保证它在所有情况下都有效。由于 Rhino 引擎的怪异性质和 VRO 的限制,您可能会遇到其他问题或限制,并且无法使用您想要使用的 JS 库。例如,如果您的库代码太大,VRO 将无法使用它,因为它将耗尽内存,或者工作流程/操作将崩溃,或者它会中途停止评估库代码而变得无用。
还有另外 2 种方法可以在 VRO 工作流程/操作中使用外部库,但它们不使用普通的 VRO 引擎。请记住,使用这种方式,您无法直接访问所有 VRO API,例如资源元素、插件等。所以它有一些局限性:
我希望这对将来需要做类似事情的人有所帮助,因为我花了很长时间的尝试和错误才达到这一点。
归档时间: |
|
查看次数: |
57 次 |
最近记录: |