0

所以 Flow 仅在我第一次运行时才能正常工作,然后我必须重新启动计算机才能再次正常工作。

具体来说,我看到的问题是我们正在使用 Flow 语言向我们的 JS 代码添加类型注释。我们的 linter 脚本设置为运行流类型检查等。但是,当我修复代码中的问题然后重新运行 linter 脚本时,它仍然会返回完全相同的错误......但是当它显示应该出现错误的代码时,它实际上显示了我更新的已修复的代码。

举个例子,我有一个我复制到项目中的文件,我认为我并不需要它,但也许我会。所以我复制了它以防万一。那么它出现了一堆 linter 错误,所以我决定删除该文件,因为我真的不需要它。所以然后我再次运行“yarn lint --fix”,但它仍然在抱怨那个文件,即使文件不存在!现在有趣的是,linter 输出应该显示这些错误的代码,它只是空白。

或者另一个例子,假设我的代码中有几个函数:

100: function foo() {}
...
150: function bar() {}

并且 foo 有很多错误,因为它是一些我不再需要的丢弃代码,所以我只是删除它。所以新代码看起来像:

100: function bar() {}

好吧,我重新运行 linter 并收到如下错误:

Error ------------------------ function foo has incorrect
something...blah blah
  src/.../file.js
  100| function bar() {}

我还在同事的机器上对此进行了测试,他们得到了与我相同的行为。所以它不是我的机器特有的东西,尽管它可能是我们项目特有的?

注意:似乎没有 Flow 的标签,但我不能在不包含至少一个标签的情况下发布,所以我使用了 flowlang,即使这实际上是一种不同的语言 :-( 我假设任何人都在寻找 flow也会使用该标签,因为它是最接近的。

4

1 回答 1

0

第一次启动 Flow 时,它会启动一个后台进程,然后用于后续的类型检查。不幸的是,这个后台进程非常慢,而且启动起来很麻烦。在linux中你可以运行:

killall flow

停止后台进程。然后,如果您重新运行流类型检查器,它实际上会看到您的所有最新更改。

于 2018-07-27T17:36:55.000 回答