【问题标题】:Is there a way to have Transcrypt export all imported symbols in a module?有没有办法让 Transcrypt 导出模块中的所有导入符号?
【发布时间】:2021-10-15 05:52:17
【问题描述】:

我有一个medium-sized Python project,我正在尝试将其转入 ES6。该项目的一部分是很多内部结构,我将它藏在一个“私人”包中(bezoar._model)。我有一个汇总 Python 模块 bezoar.model,它通过简单地导入它们来导出 bezoar._model 中的前置组件。在 Python 中,任何被导入的东西都会被隐式导出。我注意到这似乎(?)是一种标准做法,包括一些modules provided by the standard library in 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

transcrypt 生成rollup.js

import {foo} from './_modfoo.js'
var __name__ = 'rollup'

重新导出rollup.js的版本

export {foo} from './_modfoo.js'
var __name__ = 'rollup'

【问题讨论】:

    标签: javascript python transcrypt


    【解决方案1】:

    不知何故我错过了transcrypt -h

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

    按广告宣传。

    【讨论】:

      猜你喜欢
      • 2021-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-12
      • 2021-10-03
      • 2020-05-03
      • 1970-01-01
      • 2019-03-17
      相关资源
      最近更新 更多