У меня есть следующая настройка:
- Виртуальная машина Ubuntu Lucid 32, созданная Vagrant.
- Папка, из которой запускается Vagrant с некоторыми файлами CSS и JS. Папка монтируется внутри ВМ по адресу /vagrant/.
- grunt.jsс задачей наблюдения, запущенной с виртуальной машины, отслеживающей изменения в файлах css и js. После изменения файлов он должен объединить эти файлы в один файл css и один файл js.
Проблема: Задача Watch в grunt.js не видела изменений в смонтированной папке.
Если я изменяю файлы внутри ВМ, задача работает нормально.
Если я запускаю grunt.js не из виртуального ящика, а из основной ОС, он также работает. Пробовал в Mac OS и Windows 7.
Проблема возникает только тогда, когда задача запускается с ВМ, а файлы изменяются из основной ОС. Есть ли решение этой проблемы?
Обновление. Некоторые подробности о наших сценариях использования, чтобы лучше понять контекст:
- Мы создаем студию, в которой более 10 человек работают с кодом.
- Разные люди используют разные ОС. У нас есть: Win 7, Mc OS X и Ubuntu Linux.
- Мы работаем и поддерживаем более 100 различных проектов.
- В проектах используются разные языки и настройки: у нас есть проекты PHP на нашей собственной CMS, проекты PHP на Yii, проекты Python на Django и некоторые проекты node.js.
- В какой-то момент над любым из этих проектов могут работать разные разработчики.
- Сейчас мы тратим много времени каждый раз, когда нам нужно заставить проект работать на компьютере разработчика, который раньше с ним не работал. И обычно нам нужна помощь разработчика, который уже работал над этим, чтобы заставить его работать.
Мы хотим сделать его более прямолинейным. Для этого мы пытаемся использовать Vagrant и ряд преднастроенных образов ОС.
На данный момент настройка проекта выглядит так:
- Проект проверки для разработчиков из git.
- Разработчик открывает папку проекта в Терминале.
- Разработчик входит в режим «бродяга вверх».
- Через 5 минут он получил полностью настроенную и рабочую копию проекта.
Нам нравится эта установка, и в большинстве случаев у нас не возникало с ней проблем. Но в наших проектах node.js мы используем некоторые препроцессоры css и js и хотели бы обновлять их файлы в реальном времени. И есть проблема с начальным постом.
Решения с доступом к файлам с ssh VM и с файлами проекта внутри VM, вероятно, будут работать, но они не решили основную проблему (быстрая и простая настройка большого количества проектов в группе разработчиков, работающих на разных ОС)
задан Alexey Ivanov 1 July 2012 в 21:08
поделиться