我有一个中型 Python 项目,我正在尝试将其转换为 ES6。项目的一部分是很多内部结构,我把它藏在一个“私人”包中(bezoar._model
)。我有一个汇总 Python 模块,它通过简单地导入它们bezoar.model
来导出前端组件。bezoar._model
在 Python 中,任何被导入的东西都会被隐式导出。而且我注意到这似乎(?)是一种标准做法,包括CPython 中标准库提供的一些模块。
在 ES6 中,情况并非如此。必须明确export foo from jsmodule
地从另一个模块重新导出符号。我手动修改了生成的 ES6 以替换import foo from jsmodule
它export foo from jsmodule
,它按预期工作。
有什么办法可以说服 Transcrypt 为我做这件事吗?
我尝试使用__pragma__('js', ...)
,但它在导入部分之后插入了代码,这(显然)是 ES6 不允许的。
例子
_modfoo.py
:
def foo():
pass
rollup.py
:
from _modfoo import foo
转密生成rollup.js
:
import {foo} from './_modfoo.js'
var __name__ = 'rollup'
重新导出版本rollup.js
:
export {foo} from './_modfoo.js'
var __name__ = 'rollup'