2

从 Python 代码编译 javascript 代码时 transcrypt 生成的 mod.js 文件是什么意思?我知道它似乎包含编译为 Javascript 的纯例程,该例程是用 Python 编写的,没有任何扩展或任何东西。

是否可以通过嵌入到代码中直接在html文件中使用?如果是的话怎么做?这将给出一个非常短的代码,这些代码最初是用 Python 编写的——这使得开发和阅读变得更容易。我已经对它进行了试验,您甚至可以直接将 Javascript 元素与 Python 代码混合使用——如果您知道自己在做什么的话。如果需要,我可以发布一个示例。

4

1 回答 1

0

.mod.js 文件是模块的仅 javascript 表示。它是在编译期间生成的,很像带有 C/C++ 编译器的 .obj 文件。

您可以通过仅在模块文件夹的 __javascript__ 子文件夹中提供 .mod.js 文件来制作仅 javascript 的模块分发。发行版中的一个示例是 itertools 模块,位于:

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

它只有 JS 代码,没有 Python 代码。这称为纯 JS 模块。如果 Transcrypt 在正确的导入位置找不到 .py,它将寻找 .mod.js 文件。这在当时是相当不足的。

如果您想在 html 中使用像 .mod.js 文件一样短的东西,请查看单位:

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

您至少需要一个单元来保存运行时(约 40k 缩小)。所有其他单元都是非常小的组件(通常 < 1k),甚至比 .mod.js 文件略小。可以使用单元加载器有选择地加载它们(但除非使用技巧,否则不能动态加载),如示例中所示。

于 2018-02-25T12:53:17.913 回答