我在电子+角度应用程序构建方面遇到了同样的问题,下一个解决方案对我有帮助。
Blockly 的参考资料说Python 的生成器类应该包含在文件python_compressed.js
中blockly_compressed.js
。所以我需要包含这些文件。
首先,我使用copy-webpack-plugin将所需文件从 Blockly 的安装目录复制node_modules/blockly
到assets/js
:
var CopyPlugin = require('copy-webpack-plugin');
module.exports = {
...
plugins: [
...
new CopyPlugin([
{
from: 'node_modules/blockly/blockly_compressed.js',
to: 'assets/js/[name].[ext]'
},
{
from: 'node_modules/blockly/blocks_compressed.js',
to: 'assets/js/[name].[ext]'
},
{
from: 'node_modules/blockly/python_compressed.js',
to: 'assets/js/[name].[ext]'
},
{
from: 'node_modules/blockly/msg/en.js',
to: 'assets/js/msg/[name].[ext]'
},
]),
...
]
...
}
在我添加了js/assets
直接从index.html
底部调用的脚本后:
<!DOCTYPE html>
<html>
<head>...</head>
<body><app-root>...</app-root></body>
<script src="assets/js/blockly_compressed.js"></script>
<script src="assets/js/blocks_compressed.js"></script>
<script src="assets/js/python_compressed.js"></script>
<script src="assets/js/msg/en.js"></script>
</html>
在 webpack 构建后,在控制台中检查 python 的生成器:
> typeof Blockly.Python
< "object"