Nuclide IDE 和使用 Watchman 的远程服务器设置

Nuclide IDE & Remote Server Setup with Watchman

Facebook 最近宣布 Nuclide,支持远程开发和 Hack。

我已按照所有安装说明进行操作,但是 autocomplete/inline error report/click-to-definition 功能不起作用,而 nuclide-language-hack, nuclide-file-tree/nuclide-remote-projects 按预期工作(并且 nuclide-server 来自服务器部分 / .hhconfig文件包含在项目根目录中)。

除了flow,我已经通过过滤nuclide-的结果安装了它们。

这些功能是否在远程访问中不受支持,或者我在安装时犯了一些错误(我认为这很简单)?

此外,我不明白 watchman 是如何配置才能正常工作的。我已经使用以下命令安装了它(服务器运行 Linux,我还安装了 inotify-tools

$ git clone https://github.com/facebook/watchman.git
$ cd watchman
$ ./autogen.sh
$ ./configure
$ make
$ sudo make install

我使用以下内容观看我的项目

$ watchman watch /my/project/root

watcher 似乎已经建立好了。

然而核素报告:

Watcher failed to start - watcher features disabled!

Details: socket hang up

很抱歉,我在这里询问安装建议,但我认为也不应在 Github 上询问以上内容。

谢谢!


解决方案:正如 MostafaEweda 所建议的,我尝试从源代码编译。 apm 或通过 atom 设置进行包安装,对我不起作用。 nuclide-installer 根本没有安装任何东西,手动安装 nuclide-* 包也没有用。

For Windows Users : Python3.4 抛出一些运行时错误(尽管文档说支持 Python 2.6 或更高版本)。我使用 Python2.7,这些错误似乎消失了。

提示:当你安装nuclide时,你必须等待几分钟,并且atom会变得没有反应。请耐心等待!

由于某种原因,Nuclide 的 WatchmanClient 似乎无法连接到您安装的 watchman。

请注意,WatchmanClient 的测试目前已禁用,但当您从 WatchmanClient-spec.js 和 [=35= 的第 20 行中删除 x 时,它可能会显示一些有用的错误]: npm testwatchman-helpers 目录中或在 _command 函数中添加一些日志记录或堆栈跟踪。

但是,所有这些都与不适合您的 Hack 功能无关。

我建议尝试通过以下方式从源代码构建 Nuclide:

git clone git@github.com:facebook/nuclide.git ~/nuclide && cd ~/nuclide && ./scripts/dev/setup

然后,使用/home/$USER/pkg/nuclide/server/nuclide-start-server作为远程服务器命令。

最后,您的客户端和服务器上的日志文件的内容:~/nuclide.nohup.out/tmp/nuclide-logs/nuclide.log 可以帮助您了解正在发生的事情。