Have ideas to improve npm?Join in the discussion! »


    1.4.5 • Public • Published

    Blockly for Node.js and Browser via CommonJS module


    Supports the AESL generator.

    This fork adds AESL support for Thymio (and uses an older blockly version).


    npm i @mobsya-association/node-blockly



    All generators

    var Blockly = require('@mobsya-association/node-blockly/browser');


    import Blockly from '@mobsya/node-blockly/browser';
    import De from '@mobsya/node-blockly/lib/i18n/de';

    Dynamic imports also works but Blockly doesn't re-render workspace. You must re-render it manually after locale loaded

    Generate the @mobsya-association/node-blockly npm package

    In order to generate and publish the @mobsya-association/node-blockly , you will first need to build the compressed resources in the blockly submodule.

    cd blockly
    python build.py

    After that this script has been succesfully executed, from the root directory you can launch

    cd .. # if still under the blockly directory
    npm publish

    Workaround build-break 31/01/2020

    Problem: In order to generate the ****_compressed.js files, build.py uses the online version of the closure compiler. Sometime in December 2019 some functions that are used by the blockly source have been removed from the closure libraries. The online compiler is always aligned with the latest version of this libraries, so trying to compile the thymio-blockly-standalone project generates an error ( caused by the removal of this libraries ).

    Proper fix: The best fix would be to manually replace all the references to this functions from the blockly source code.

    Workaround: The fix involves a lot of lines of code, temporarly we will just inject the old definition of this libraries inside blockly_compressed.js ( the one in the blockly submodule ). The code to inject is :

    goog.isDef=function(a){return void 0!==a};goog.isString=function(a){return"string"==typeof a};goog.isBoolean=function(a){return"boolean"==typeof a};goog.isNumber=function(a){return"number"==typeof a};

    This must be placed in:

    var $jscomp=$jscomp||{};$jscomp.scope={};var COMPILED=!0,goog=goog||{};goog.global=this||self;
    /* inject here */
    goog.exportPath_=function(a,b,c) ....


    npm i @mobsya-association/node-blockly

    DownloadsWeekly Downloads






    Unpacked Size

    4.86 MB

    Total Files


    Last publish


    • avatar
    • avatar