0

我有一个中型 Python 项目,我正在尝试将其转换为 ES6。项目的一部分是很多内部结构,我把它藏在一个“私人”包中(bezoar._model)。我有一个汇总 Python 模块,它通过简单地导入它们bezoar.model来导出前端组件。bezoar._model在 Python 中,任何被导入的东西都会被隐式导出。而且我注意到这似乎(?)是一种标准做法,包括CPython 中标准库提供的一些模块

在 ES6 中,情况并非如此。必须明确export foo from jsmodule地从另一个模块重新导出符号。我手动修改了生成的 ES6 以替换import foo from jsmoduleexport 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'
4

1 回答 1

0

不知何故,我错过了这个transcrypt -h

  -xr, --xreex          re-export all imported names

像宣传的那样工作。

于 2021-08-12T07:10:39.880 回答