node.js - 在 Yeoman 中复制除一个子文件夹之外的文件夹

标签 node.js yeoman glob yeoman-generator

我正在开发这个 Yeoman 项目,并将一些文件从模板复制到我的新应用程序目录。

这条线做得很好:

this.fs.copyTpl(this.templatePath(''),
    this.destinationPath(this.project_name_slugified+'/'));

所有内容都来自模板文件夹并转到项目的根文件夹。

但是当有人添加标志“--nr”时,我想排除一个已复制的子文件夹。所以 yo my-gen my_app_name --rf 应该复制所有内容,除非这个子文件夹。

我尝试了 !-glob 表示法,但它不起作用。我做了类似第一个参数的事情:

[this.templatePath('**'),this.templatePath('!subfolder/subfolder_to_be_excluded')] 

因此设置第二个参数以排除不需要的子文件夹

我也尝试过删除(delete方法),但似乎该文件不能立即可用。

无论如何,它都不起作用。有任何想法吗? promise copyTpl 会起作用吗?

最佳答案

通过调用 this.templatePath('!subfolder/subfolder_to_be_excluded'),您最终会生成一个损坏的路径:/absolute/path/!subfolder/etc

鉴于您不需要绝对路径来应用过滤,因此无需使用 this.templatePath 即可使用它。

this.fs.copyTpl(
    [
        this.templatePath('**'),
        '!subfolder/subfolder_to_be_excluded'
    ],
    this.destinationPath(this.project_name_slugified + '/'),
    templateContext
);

关于node.js - 在 Yeoman 中复制除一个子文件夹之外的文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40814713/

相关文章:

php - 通过PHP调用Node JS函数(fsockopen)

javascript - 无法通过 fetch 方法访问 HTMLCollection Item

node.js - 类型错误 : 'connect' only accepts a callback

node.js - Angular2 - 成功获取 iframe.contentWindow 时出现问题并调用 postMessage() 时出错

angularjs - Yeoman 生成的 Angular 应用程序工作正常,直到我添加 ['ngResource' ] 然后它挂起

javascript - grunt-contrib-watch 静默退出

angularjs - 使用 yo Angular 脚手架时无法获取/

regex - 正则表达式与 ls 的用法

c++ - 为什么第一次调用 readline() 会减慢对 fnmatch() 的所有后续调用?

linux - logrotate 会删除 .gz 文件吗?也就是说,带 * 路径的 logrotate 是否会旋转现有的 .gz 文件?