Транскрипт и файл .mod.js

В чем смысл файла mod.js, который генерирует транскрипт при компиляции кода javascript из кода Python? Я понимаю, что он содержит чистую процедуру, скомпилированную в Javascript, написанную на Python без каких-либо расширений или чего-либо еще.

Можно ли использовать его непосредственно в html-файле, внедрив его в код? Если да, то как это можно сделать? Это дало бы довольно короткий код, изначально написанный на Python, что упрощает разработку и чтение. Я экспериментировал с ним, и вы даже можете напрямую смешивать элементы Javascript с кодом Python — если вы знаете, что делаете. Могу выложить пример, если нужно.


person bunkus    schedule 24.02.2018    source источник


Ответы (1)


Файл .mod.js — это представление модуля, состоящее только из javascript. Он создается во время компиляции, как файл .obj с компилятором C/C++.

Вы можете сделать дистрибутив модуля только для javascript, предоставив только файл .mod.js в подпапке __javascript__ папки вашего модуля. Примером этого в дистрибутиве является модуль itertools по адресу:

https://github.com/QQuick/Transcrypt/tree/master/transcrypt/modules/itertools

Он имеет ТОЛЬКО код JS, без кода Python. Это называется модулем только для JS. Если Transcrypt не может найти файл .py в правильном месте импорта, он будет искать файл .mod.js. В то время это довольно мало документировано.

Если вы хотите использовать что-то такое же короткое, как файл .mod.js в своем html, взгляните на модули:

http://www.transcrypt.org/docs/html/special_facilities.html#transcrypt-s-unit-mechanism-and-creating-native-javascript-component-frameworks

Вам понадобится по крайней мере один модуль, содержащий среду выполнения (около 40 000 минимизированных). Все остальные единицы — это очень маленькие компоненты (обычно ‹ 1 КБ), даже немного меньше, чем файлы .mod.js. Их можно загружать выборочно (но пока не динамически, если не использовать хитрость) с помощью загрузчика модулей, как показано в примере.

person Jacques de Hooge    schedule 25.02.2018