Я создаю генератор йома для довольно типичного приложения node:
/
|--package.json
|--.gitignore
|--.travis.yml
|--README.md
|--app/
|--index.js
|--models
|--views
|--controllers
В папке шаблонов моего генератора йомен я должен переименовать dotfiles (и package.json), чтобы они не обрабатывались как часть генератора:
templates/
|--_package.json
|--_gitignore
|--_travis.yml
|--README.md
|--app/
|--index.js
|--models
|--views
|--controllers
Я вижу много генераторов, которые копируют dotfiles индивидуально вручную:
this.copy('_package.json', 'package.json')
this.copy('_gitignore', '.gitignore')
this.copy('_gitattributes', '.gitattributes')
Мне кажется, что мне больно вручную изменить код генератора, когда я добавляю новые файлы шаблонов. Я хотел бы автоматически копировать все файлы в папке /templates и переименовать те, которые имеют префикс _.
Какой лучший способ сделать это?
Если бы я описал свое намерение в воображаемом регулярном выражении, это будет выглядеть так:
this.copy(/^_(.*)/, '.$1')
ths.copy(/^[^_]/)
ИЗМЕНИТЬ Это лучшее, что я могу решить:
this.expandFiles('**', { cwd: this.sourceRoot() }).map(function() {
this.copy file, file.replace(/^_/, '.')
}, this);