用yeoman复制多个dotfiles的推荐方法是什么?

我正在为一个相当典型的节点应用程序构建一个yeoman生成器:

/
|--package.json
|--.gitignore
|--.travis.yml
|--README.md
|--app/
    |--index.js
    |--models
    |--views
    |--controllers

在我的yeoman生成器的templates文件夹中,我必须重命名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);
我在寻找这个解决方案的时候发现了这个问题,然后我自己弄清楚了.

使用新的fs API,您可以使用globs!

  // Copy all non-dotfiles
  this.fs.copy(
    this.templatePath('static/**/*'),
    this.destinationRoot()
  );

  // Copy all dotfiles
  this.fs.copy(
    this.templatePath('static/.*'),
    this.destinationRoot()
  );
http://stackoverflow.com/questions/24844951/whats-the-recommended-way-to-copy-multiple-dotfiles-with-yeoman

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:用yeoman复制多个dotfiles的推荐方法是什么?