npm install
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 命令行对命令的长度有限制,如果编译 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 下本地编译就是编译不通过,也没找到问题,欢迎有发现的小伙伴来交流)