javascript - 导入中转加密导入

标签 javascript python transcrypt

使用 Transcrypt 进行 python 到 javascript 编译我有 2 个相互需要的模块。例如:

myTest.py:

import myTest2
def test():
    myTest2.test()
someConstant = 1

和 myTest2.py:

import myTest
def test():
    console.log(myTest.someConstant)

编译为 javascript 并调用 myTest.test() 后,我收到 RangeError: Maximum call stack size allowed。 我怎样才能避免这种情况,但保留两个互相使用的模块? 提前致谢。

最佳答案

在 Transcrypt 中,导入是在编译时而不是运行时解析的,因为编译器必须知道在生成的 JavaScript 中包含哪些模块。此外,导入解析一次性完成。解析发生在单次传递中这一事实意味着不支持相互(或一般循环)导入。

因此,如果您有两个模块需要彼此的某些内容,那么最好的方法是将这些内容提取出来并放入由两个模块导入的第三个模块中。

解析发生在编译时的事实也意味着使用“if”进行运行时条件导入是没有意义的。对于条件导入,请使用 __pragma__ ('ifdef', ...),它在编译时完成工作。

此类限制的解释如下:

http://www.transcrypt.org/docs/html/special_facilities.html#transcrypt-s-module-mechanism

关于javascript - 导入中转加密导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39266262/

相关文章:

javascript - 如何将登录框打造成可重用的UI组件?

javascript - 如何使 jquery datePicker 按钮图像不可点击

python - zappa 处理程序未导入 django 应用程序

python - 如何输入一个数字,该数字将导致搜索列表,然后搜索字典以进行确认

python - 通过数据库调用对数据分析进行单元测试的最佳方法

javascript - Python - 无法导入模块 'PIL'

Javascript: Uncaught Error :downloads.onDeterminingFilename 的监听器太多

javascript - 基于 jQuery 的 Splitter 插件

javascript - 集成 Python 和 JavaScript 的最佳方式?

javascript - 转译预处理器