使用Yeoman生成器复制文件不起作用

时间:2015-09-17 16:07:33

标签: javascript node.js yeoman yeoman-generator

我正在和Yeoman一起开发自己的发电机。当我尝试复制一些文件时,没有任何反应。没有错误,该过程一直持续到它结束,但没有文件被复制。生成器有一个带有一堆html文件的/ templates目录,每个文件都有一些html行,此刻非常简单。 这是我的复制方法:

copyMainFiles: function(){
    console.log('copyMainFiles dir:' + process.cwd() + '+++++');
    console.log('file exists? '+fs.existsSync('_footer.html') );
    this.copy("_footer.html",  "app/footer.html");
    console.log('footer copied');
    this.copy("_gruntfile.js", "Gruntfile.js");
    console.log('gruntfile copied');
    this.copy("_package.json", "package.json");
    console.log('package copied');
    this.copy("_main.css",     "app/css/main.css");
    console.log('main.css copied');

    var context = { 
        site_name: this.appName 
    };

    console.log('all files copied');
    //template method makes the replacement and then copy
    this.template("_header.html", "app/header.html", context);
    console.log('header template processed');
},

这是控制台输出:

$ yo trx

方法1刚刚运行

方法2刚刚运行

?你的应用名称是什么? Kosheen

?你想生成一个演示部分吗?是

所有dirs创建

copyMainFiles目录:C:\ cygwin \ Applications \ MAMP \ htdocs \ prueba-trx +++++

文件存在?假

页脚复制

gruntfile已复制

包复制

main.css已复制

复制所有文件

处理标题模板

运行npm

就是这样。永远不会返回系统提示符。

除了fs.existsSync返回false(文件存在:htdocs \ generator-trx \ generators \ app \ templates_footer.html)之外,如果我尝试复制一个不存在的文件,我会得到典型的错误。

以前创建的文件夹没有任何问题。在目标文件夹的根目录中有一个带有{}的.yo_rc.json文件。 Yeoman版本是1.4.8,适用于Windows 7.

copy()是正确的方法还是不再有效?如何在此方案中复制简单文件?

2 个答案:

答案 0 :(得分:1)

除了我使用弃用方法之外,实现此任务的正确方法如下:

this.fs.copy(
  this.templatePath('_bower.json'),
  this.destinationPath('bower.json')
);

答案 1 :(得分:0)

不确定您的问题是什么,但您应该阅读有关如何处理文件的Yeoman官方文档:http://yeoman.io/authoring/file-system.html

您正在使用旧的和已弃用的方法。