【发布时间】:2014-07-19 21:04:21
【问题描述】:
我正在为一个相当典型的节点应用程序构建一个 yeoman 生成器:
/
|--package.json
|--.gitignore
|--.travis.yml
|--README.md
|--app/
|--index.js
|--models
|--views
|--controllers
在我的 yeoman 生成器的模板文件夹中,我必须重命名点文件(和 package.json)以防止它们作为生成器的一部分被处理:
templates/
|--_package.json
|--_gitignore
|--_travis.yml
|--README.md
|--app/
|--index.js
|--models
|--views
|--controllers
我看到很多手动复制点文件的生成器:
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);
【问题讨论】: