使用WebStorm(JetBrains)和SSHFS挂载开发服务器(Mavericks,OSXFUSE)?不断驾驶

时间:2014-07-24 19:06:50

标签: osx-mavericks homebrew webstorm fuse sshfs

更新:我看到有人试图使用带有SSHFS的PyCharm而JetBrains说:“不”。也许这不起作用?

我正在尝试在我正在工作的客户办公室的SSHFS挂载磁盘上使用WebStorm - 我之前从未使用过SSHFS。我正在使用OSX 10.9.2,通过home-brew安装SSHFS并安装了OSXFUSE。

SSHFS挂载在任何情况下都会定期卸载,但是自从我开始尝试使用WebStorm后,每次启动WebStorm时它都会卸载并且它开始扫描SSHFS磁盘上的文件 - WebStorm会给出消息“外部文件更改同步可能慢:项目文件无法观看(它们是否在网络安装下?)“如果我尝试打开文件,它会冻结。同时SSHFS盘已被拆除。如果我通过终端重新安装WebStorm不满意,要么冻结,要么只是坐在那里。

我使用“现有文件中的新项目”设置WebStorm项目 - 有没有办法使用SSHFS作为服务器进行设置?除了SSHFS光盘的登录名和密码之外,我没有任何其他特定于服务器的信息,但也许可以获得它。

感谢您的帮助 -

1 个答案:

答案 0 :(得分:6)

这就是我的操作方式,也许它可以帮到你。如果有一个配置设置,我似乎已经掩盖了,只要问,我会解决这个问题。但总而言之,这非常成功:

我的构建环境隐藏在Linux发行版上,但我的开发环境位于Mac桌面上(当我在工作时)和Mac Air(当我在家时)。我的项目是巨大的,合同上我无法将代码移动到任何可以访问的机器上,如果我的笔记本电脑被盗了。所以我几乎必须使用ssh(和sshfs)来完成任何事情。

当我在家时,我坐下来工作时,我手动启动VPN - 因为有很多变化,我会假设你知道如何做这部分。

我打开一个终端并调用:

caffeinate &

因为我讨厌在计算机进入屏幕保护程序时断开连接。这可能是你断线的原因?每当我开发时,我都会打开这个终端。我也使用tmux,以便我的终端会话可以在计算机之间共享。总之...

我在服务器和客户端之间设置了挂载点。我有一个脚本,我在挂载点关闭时运行(为你自己的工作定制):

umount -f /Volumes/$MOUNTDIR/
umount -f /Users/$HOMEUSER/$MOUNTDIR
mkdir /Users/$HOMEUSER/$MOUNTDIR
sshfs $HOMEUSER@@SERVERADDR:/usr/$HOMEUSER/$MOUNTDIR /Users/$HOMEUSER/$MOUNTDIR

然后我启动了Webstorm,PyCharm,ADS,IntelliJ(我是Jetbrains粉丝)。

此时您可以在$ MOUNTDIR内打开目录并开始工作。如果您发现需要运行构建,这里有一个提示 - 不要在本地构建。而是使用SSH在服务器上发出构建命令(或运行脚本)。构建运行后同步的开销很可能远远少于获取和编写构建的所有步骤。

我发现如果丢失了VPN,我就会断开连接。我曾经在计算机睡觉时断开连接。咖啡因固定了。

对于合理规模的项目,这可能就是您所需要的。接下来是优化 - 只有在您遇到麻烦时才这样做:

为了加快加载时间,我所做的是创建一个不属于mount的本地项目。在您作为项目打开的第一个目录的基础上创建并编写了很多.IDEA目录。在这个目录里面有很多文件可以写入很多文件,并且根据你的网络速度,它可能会导致悲伤。它确实意味着必须在任何地方保持一些设置,但在我的情况下,为了获得巨大的性能提升,这是一个很小的代价。

因为我这样做,我将不得不手动将目录添加到我的项目中(在Preferences / Directories下)。但是如果你使用大量的API,你可能会这样做。我谨慎地将我不需要引用的目录标记为“排除”,以使索引器的生活更轻松。我在数千名其他员工的共享目录结构中工作,并确保流不会交叉。

现在我有成千上万的文件,而且同步可能很慢。但只有在您离开应用程序并重新进入时才会触发同步。老实说,只要您拥有合理的互联网连接,就不会那么糟糕。

我希望这会有所帮助。一旦我开始使用它作为我的工作流程,我就再也不回去了。