Как расширить регулярное выражение, чтобы исключить все файлы в папке?

В файле app.yaml моего проекта Google App Engine есть раздел skip_files, который используется для исключения загруженных файлов данных типов. Как расширить это регулярное выражение, чтобы исключить загрузку всей директории gaeunit?

skip_files: |
    ^(.*/)?(
    (app\.yaml)|
    (index\.yaml)|
    (\..*)|
    (.*\.pyc)|
    (.*\.bat)|
    (.*\.psd)|
    (Thumbs.db)|
    (.*\.svn/.*)|
    (.*\.lnk)|
    (.*\.datastore)|
    (_darcs/.*)|
    (nbproject/.*)|
    (.*\.swp)|
    (.*\.log)|
    )$

Ответ 1

То же самое, что каталоги nbproject и darcs исключены в приведенном выше регулярном выражении. Добавьте эту строку в любую точку до последней строки:

(gaeunit/.*)|

Ответ 2

my app.yaml выглядит так:

skip_files:
- ^(.*/)?#.*#
- ^(.*/)?.*~
- ^(.*/)?.*\.py[co]
- ^(.*/)?.*/RCS/.*
- ^(.*/)?\..*
- ^(statistics/.*)
- ^(unittests/.*)
- ^(webtests/.*)

Ответ 3

С новым приложением (с этой записью) вы можете просто поместить имя каталога в завершающую косую черту (как указано app.yaml docs)

Итак, ваш app.yaml может выглядеть так: skip_files: - node_modules/ - ^(.*/)?app\.yaml - ^(.*/)?app\.yml - ^(.*/)?index\.yaml - ^(.*/)?index\.yml ...

Однако при попытке игнорировать огромный каталог, например node_modules, вам будет легче справиться с: (- ^node_modules/*.*). Это решение будет печатать одно приятное сообщение типа INFO: Ignoring directory [node_modules]: Directory matches ignore regex. при развертывании с помощью gcloud app deploy.

К сожалению, gcloud app deploy по-прежнему будет локально копировать все файлы в каталоге развертывания на /var/folders/..., даже если вы проигнорировали определенные каталоги/файлы. Эти файлы не будут загружены в Google.