我有以下设置:
- 由Vagrant创建的 Ubuntu Lucid 32 VM 。
- Vagrant 启动的文件夹,其中包含一些 CSS 和 JS 文件。该文件夹安装在 VM 内的地址 /vagrant/ 处。
- 带有监视任务的grunt.js从 VM 启动,监视 css 和 js 文件的变化。文件更改后,必须将这些文件合并为一个css和一个js文件。
问题: grunt.js 中的监视任务没有看到挂载文件夹中的更改。
如果我在 VM 中更改文件,请观看任务正常工作。如果我不是从虚拟框启动 grunt.js,而是从主操作系统启动它也可以。在 Mac OS 和 Windows 7 中尝试过。
只有在从 VM 启动任务并从主操作系统更改文件时才会出现问题。这个问题有解决方法吗?
更新。关于我们的使用场景的一些细节,以更好地理解上下文:
- 我们是设计工作室,有 10 多个人在使用代码。
- 不同的人使用不同的操作系统。我们有:Win 7、Mc OS X 和 Ubuntu Linux。
- 我们正在开发和支持 100 多个不同的项目。
- 项目使用不同的语言和设置:我们在自己的 CMS 上有 PHP 项目,在 Yii 上有 PHP 项目,在 Django 上有 Python 项目,还有一些 node.js 项目。
- 不同的开发人员可能会在某个时间点从事任何此类项目。
- 现在,每次我们需要在开发人员的计算机上进行项目工作时,我们都会花费大量时间,而他们以前没有使用过它。通常我们需要一些已经在它上面工作的开发人员的帮助才能使它工作。
我们想让它更直截了当。为此,我们尝试使用 Vagrant 和一些预配置的 OS 映像。
现在项目设置如下所示:
- 来自 git 的开发人员结帐项目。
- 开发人员在终端中打开项目文件夹。
- 开发人员输入“vagrant up”。
- 5 分钟后,他已完全配置并工作项目副本。
我们喜欢这种设置,而且大多数时候我们没有任何问题。但是在我们的 node.js 项目中,我们使用了一些 css 和 js 预处理器,并且喜欢实时更新它们的文件。并且在最初的帖子中存在问题。
使用 ssh VM 访问文件以及在 VM 中使用项目文件的解决方案可能会起作用,但它们并没有解决基本问题(在运行不同操作系统的开发人员组中快速轻松地设置大量项目)