Transcrypt и файл.mod.js
В чем смысл файла mod.js, который генерирует transcrypt при компиляции кода javascript из кода Python? Я понимаю, что он, кажется, содержит чистую подпрограмму, скомпилированную в Javascript, который написан на Python без каких-либо расширений или чего-либо еще.
Может ли он использоваться непосредственно в html-файле, встраивая его в код? Если да, как это можно сделать? Это дало бы довольно короткий код, который был изначально написан на Python - что облегчает его разработку и чтение. Я экспериментировал с этим, и вы даже можете напрямую смешивать элементы Javascript с кодом Python - если вы знаете, что делаете. Я могу опубликовать пример, если это желательно.
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
Вам понадобится хотя бы один юнит, удерживающий среду выполнения (около 40 тыс.). Все остальные модули являются очень маленькими компонентами (обычно < 1 КБ), даже немного меньше, чем файлы.mod.js. Они могут быть загружены выборочно (но пока не динамически, если не используются хитрости) с использованием загрузчика модулей, как показано в примере.