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

Copy files with Yeoman generator doesn't work

本文关键字:文件 工作 复制 Yeoman 使用      更新时间:2023-09-26

我正在与约曼开发我自己的生成器。当我试图复制一些文件时,什么也没发生。没有错误,这个过程一直持续到结束,但是没有文件被复制。生成器有一个/templates目录,里面有一堆html文件,每个文件都有几行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

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

所有已创建的目录

copyMainFiles dir: C: ' cygwin '程序' MAMP '根' 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()是正确的方法还是不再有效?在这种情况下,如何复制一个简单的文件?

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

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

不知道你的问题是什么,但你应该阅读关于如何处理文件的约曼官方文档:http://yeoman.io/authoring/file-system.html

您正在使用旧的和不赞成的方法