Есть ли способ, чтобы Transcrypt экспортировал все импортированные символы в модуле?

#javascript #python #transcrypt

Вопрос:

У меня есть проект 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'
 

Ответ №1:

Как-то я пропустил это из transcrypt -h :

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

Работает так, как рекламируется.