Подтвердить что ты не робот

Как игнорировать изменения в некоторых папках при разработке локально?

Я использую Go SDK для Google App Engine (он использует некоторые части SDK Python и вызывает dev_appserver.py при запуске goapp serve). По умолчанию, похоже, для изменения всех файлов и папок. У меня есть crapload зависимости bower в статической папке, и SDK жалуется, что он не может смотреть, что много файлов.

Как настроить dev-сервер игнорировать изменения в папке?

Edit. Чтение devappserver2/watcher_common.py, кажется, что оно игнорирует каталоги, начиная с .. Я полагаю, что в худшем случае я мог бы префиксные папки ., но это взломать. Должен быть параметр конфигурации, и я не могу найти его.

4b9b3361

Ответ 1

Вы правы, что в настоящее время нет опции командной строки или конфигурации, чтобы указать файлы/каталоги, которые будут игнорироваться наблюдателем.

. (точка) взломать

Как вы обнаружили, файлы и каталоги, начинающиеся с ., игнорируются. Это довольно стандартное соглашение для многих систем * nix. Однако он не масштабируется с помощью проектов python со многими локальными зависимостями.

Изменение файла наблюдателя

Вы можете изменить этот файл, но это тоже неблагоприятно, так как он делает очень хрупкие изменения и подвержен взлому, если обновления перезаписывают файл.

Запрет на описанные выше обходные пути не позволяет достичь этого. Я также не видел упоминания об этом в Заметки о выпуске App Engine. Тем не менее, открыть запрос функции в общедоступном трекер-проблеме, чтобы наблюдатель игнорировал файлы, указанные директивой skip_files yaml. Не стесняйтесь снимать эту проблему, чтобы получать обновления относительно ее прогресса.

EDIT: 4 января 2017 г.

NPM 3

Для пользователей NPM, сталкивающихся с этим ограничением, вы можете счесть полезным использовать NPM v3, поскольку он по-разному определяет зависимости.

npm3 пытается это [уменьшить глубинные деревья и избыточность] путем установки некоторых вторичных зависимостей (зависимостей зависимостей) плоским способом в том же каталоге, что и основная зависимость, требующая этого.

Это может быть очень эффективным для пользователей Node, сталкивающихся с ограничением просмотра файлов.

Frankenserver

Академия Khan разработала вилку разработчика devserver App Engine под названием Frankenserver. Хотя я и не исследовал этот вариант самостоятельно, похоже, на него очень много поддержки и последних обновлений. Из него readme:

Преимущество frankenserver над ванильным SDK заключается в том, как он отслеживает файлы в вашем приложении для изменений. Он делает это намного эффективнее: 1) используя собственный файловый наблюдатель на основе FSEvents в Mac OS X и 2), соблюдая директиву skip_files в вашем приложении app.yaml.

Хотя это не официальное решение Google, это может быть целесообразным временным решением, если это ограничение влияет на вас.

Ответ 2

Я обнаружил, что comment37 в Issue 9300 работает для меня.

В случае, если ссылка недоступна. вот комментарий37:

В теории этот код существует сейчас, но есть ошибка. Он использует skip_files, но вместо сопоставления с относительными путями, он использует абсолютные пути.

Итак, если у меня есть:

skip_files:

- ^ node_modules (/.*)?

Он попытается сопоставить /Пользователи/myuser/Projects/myproject/ node_modules/и сбой.

Добавление дополнительной записи должно исправить ее и позволить ей пропустить node_modules:

skip_files:

- ^ node_modules (/.*)?

-. * node_modules

Это обходное решение, которое я использую сейчас, что, по крайней мере, позволяет мне удобство не нужно входить и редактировать файлы gcloud напрямую при каждом повторном выпуске!

выделить наиболее важную часть:

skip_files: 
- ^node_modules(/.*)? 
- .*node_modules