Nuclide IDE и настройка удаленного сервера с помощью Watchman

Facebook недавно анонсировал Nuclide, который поддерживает удаленную разработку и взлом.

Я следовал всем инструкциям по установке, но 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, кажется, установился нормально.

Однако Nuclide сообщает:

Не удалось запустить Watcher - функции Watcher отключены!

Детали: розетка зависает

Мне жаль, что я прошу совета по установке здесь, но я не думаю, что вышеизложенное следует спрашивать и на Github.

Спасибо!


Решение. Как предложил MostafaEweda, я попытался скомпилировать из исходного кода. apm или установка пакета через настройки атома у меня не сработала. nuclide-installer вообще ничего не устанавливал, и установка вручную nuclide-* пакетов тоже не работала.

Для Windows Users: Python3.4 выдает некоторые ошибки времени выполнения (хотя в документации говорится, что Python 2.6 или более поздней версии поддерживается). Я использовал Python2.7, и эти ошибки, похоже, исчезли.

Совет: Когда вы устанавливаете nuclide, вам нужно подождать несколько минут, и атом перестанет отвечать на запросы. Потерпи!


person Themis Beris    schedule 29.06.2015    source источник
comment
Если вы подозреваете проблему со сторожем, стоит пройти через facebook.github.io/watchman/ docs/troubleshooting.html. В частности, просмотр и обмен информацией из ваших журналов будет полезен для диагностики и предложения решения.   -  person Wez Furlong    schedule 30.06.2015


Ответы (1)


Похоже, что WatchmanClient от Nuclide по какой-то причине не может подключиться к установленному сторожу.

Обратите внимание, что тесты для WatchmanClient в настоящее время отключены, но, возможно, он покажет какую-то полезную ошибку, когда вы удалите x из строки 20 WatchmanClient-spec.js и запустите: npm test в каталоге watchman-helpers или добавьте журнал или трассировку стека в функцию _command .

Однако все это не связано с тем, что функции Hack не работают для вас.

Я рекомендую попробовать собрать Nuclide из исходников:

git clone [email protected]: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 на вашем клиенте и сервере может помочь вам понять, что происходит.

person MostafaEweda    schedule 29.06.2015
comment
Вы спасли мой день :) Я обновил свой вопрос и обновлю его позже, если узнаю, почему сторож не отслеживает файлы. Спасибо! - person Themis Beris; 30.06.2015