scratch-block 编译

scratch-block的远程及本地编译

          • 第一步,安装依赖
          • 第二步,映射closure-library
          • Windows 有时会遇到下述问题
            • 命令行太长
            • 远程编译

第一步,安装依赖

npm install

第二步,映射closure-library

macOS:

ln -s $(npm root)/google-closure-library ../closure-library

Windows:

mklink /d %ABSOLUTE_PATH%\closure-library %ABSOLUTE_PATH%\node_modules\google-closure-library

Windows 有时会遇到下述问题
  • 命令行太长

    由于 Windows 命令行对命令的长度有限制,如果编译 scratch-blocks 提示命令太长,改短closure-library目录名称,以及修改build.py中对其目录的引用名称。

    在 build.py 里找到如下代码

    proc = subprocess.Popen(args, stdin=subprocess.PIPE, stdout=subprocess.PIPE, shell=True)

    在这行代码之上添加如下代码:

    newArgs = [];
    for i in args:
    if i.find("node_modules\google-closure-library") != -1:
    i = i.replace("node_modules\google-closure-library", "..\cl")
    newArgs.append(i)
    注意: 之前步骤里映射的 closure-library 需要更改名称为 cl
    将 subprocess.Popen 中的参数 args 改为 newArgs。

  • 远程编译

    如以上步骤仍然编译失败,使用远程编译。
    前提条件:本机必须挂载代理,可以科学上网。因为 Google 远程编译服务不可访问。
    步骤:
    找到 build.py 中 do_compile_remote 函数,替换下面三行代码:
    conn = httplib.HTTPSConnection("127.0.0.1", 8119)
    conn.set_tunnel('closure-compiler.appspot.com',443)
    conn.request("POST", "/compile", urllib.urlencode(remoteParams), headers)
    注: 8119 是本机代理端口,需要根据本机情况修改。(记得哦·)
    (windows 下本地编译就是编译不通过,也没找到问题,欢迎有发现的小伙伴来交流)

你可能感兴趣的:(scratch-block)