#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
Работает так, как рекламируется.