当尝试使用 preback 编译我的代码时为什么出现 ReferenceError ?

prepack 尝试编译一个看似简单的程序如 global.result = UnknownProperty; 会导致一个 ReferenceError。 原因是Prepack实际上运行全局代码,不知道有关环境的任何内容。而JavaScript的语义是一个不能解析的未知标识符导致一个ReferenceError。 您可能需要专注重建您的环境。 在首页上查看 环境很重要! 一节。

为什么 global.UnknownProperty 被prepack编译为 undefined?

Prepack实际上运行全局代码,默认情况下,对对象的未知属性的任何访问都会导致 undefined。因此, global.UnknownProperty 被prepack编译为 undefined. 您可能需要专注重建您的环境。 在首页上查看 环境很重要! 一节。

__IntrospectionError 是什么?

Prepack实际上运行全局代码。 当诸如函数 Date.nowMath.random 被调用, 它们的行为是 不确定的。 当所产生的预包装代码将在实际运行时环境中再次运行时,Prepack不知道它们返回的确切值。 (您还可以使用Prepack的 __abstract 内置属性或其他内置函数直接注入这些非确定性值,这些内置在首陆页上的“环境很重要 ”一节中描述。)

当全局代码分支这些值时, prepack 不清楚在稍后的实际运行时环境中哪个分支将被采用。 因此, Prepack 尝试探索所有可能的行为,并对其进行总结。 然而,Prepack的能力仍然有限,有时候探索所有可能的行为也是没有意义的。 在这些情况下,Prepack抛出一个 __IntrospectionError。 这不是用户错误,而是 Prepack 能力有限。 有时可以通过更改代码来解决这些限制。解决限制的最简单的方法是将有问题的代码从全局代码路径移动到仅在稍后调用的回调中,或者懒初始化阶段的部分问题。

如果在使用时遇到这样的错误 Math.random, ,请考虑设置 mathRandomSeed 选项以使所有随机数字沿着全局代码路径确定性查询。

Prepack什么时候会理解所有DOM对象?

关注 这个 GitHub issue.

为什么Prepack没有优化功能中的代码?

Prepack仅优化在全局代码路径(初始化阶段)执行的代码。回调之后的任何代码都没有在这个时候被优化。

Prepack什么时候可以用于生产环境?

等待我们的 最新版本 达到 v1.0.

Prepack已经与其他工具集成了吗?

以下是其他工具的几个插件。它们已经创建并与Prepack本身分开维护。如果您遇到这些插件的任何问题,请询问插件维护者的支持。

Prepack还处于早期发展阶段,尚未准备好开始用于生产环境。