我正在一个小型reprocessing测试中寻找一个有趣的小bug:reprocessing01。
项目构建得很好,直到我做了更改并通过vscode触发了refmt,然后项目将不再编译。
下面是在进行任何更改之前为我编译和运行的代码。
open Reprocessing;
type stateT = {
image: imageT,
};
let setup = (env) => {
Env.size(~width=800, ~height=600, env);
let image = Draw.loadImage(
~filename="assets/Wave_pattern_by_inkelv1122_on_flickr_800w.jpg",
~isPixel=false, env);
{
image: image
}
};
let draw = ({image} as state, env) => {
Draw.background(Constants.white, env);
Draw.image(
image,
~pos=(0,0),
~width=Env.width(env),
~height=Env.height(env),
env
);
state
};
run(~setup, ~draw, ());如果我在vscode中打开项目,进行一些更改,例如在顶部添加let myvar = 42;,然后保存以触发refmt,这将引入以下错误:
/Users/myer/dev/react/reasonml-playground/reprocessing01/node_modules/bs-platform/lib/bsc.exe -pp "/Users/myer/dev/react/reasonml-playground/reprocessing01/node_modules/bs-platform/lib/refmt3.exe --print binary" -bs-super-errors -w -30-40+6+7+27+32..39+44+45+101 -bs-D BSB_BACKEND="bytecode" -nostdlib -I '/Users/myer/dev/react/reasonml-playground/reprocessing01/node_modules/bs-platform/lib/ocaml' -no-alias-deps -color always -c -o src/index.mlast -bs-syntax-only -bs-simple-binary-ast -bs-binary-ast -impl /Users/myer/dev/react/reasonml-playground/reprocessing01/src/index.re
File "/Users/myer/dev/react/reasonml-playground/reprocessing01/src/index.re", line 12, characters 4-5:
Error: 2817: <UNKNOWN SYNTAX ERROR>有问题的这一行是这个代码块的最后一行:
Draw.loadImage(
~filename="assets/Wave_pattern_by_inkelv1122_on_flickr_800w.jpg",
~isPixel=false,
env,
);在此之后,唯一的解决方法是将代码恢复到refmt引入更改之前的状态。
我怀疑我的refmt版本与bsb-native#2.1.1要求的版本不同步,但我不确定要安装哪个版本。我有:
$ refmt --version
Reason 3.0.0 @ bee43b0是否有一个表格显示了reason-cli和bs-platform之间的兼容版本?
是否有其他方法可以调查此问题或此行为的其他潜在根本原因?
更新:我能够将bsb-native升级到主分支,并且在构建到本机分支时可以正常工作,直到我在reprocessing02中添加了更多代码
发布于 2018-06-23 06:02:58
这个问题是因为bsb-native@2.1.1附带了一个旧版本的refmt (版本3之前),它不能读取全局refmt输出的代码(很可能是因为结尾的逗号)。我正在做一个在所有平台上的新版本3.2.0,它带有最新的refmt。如果你使用的是OSX,你可以尝试一下,只需将你的dep改为bsansouci/bsb-native#3.2.0,启动node_modules并重新安装即可。很抱歉给您带来不便。我计划把我的发布周期和bsb的发布周期结合起来。
https://stackoverflow.com/questions/50541943
复制相似问题