我正在和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()是正确的方法还是不再有效?如何在此方案中复制简单文件?
答案 0 :(得分:1)
除了我使用弃用方法之外,实现此任务的正确方法如下:
this.fs.copy(
this.templatePath('_bower.json'),
this.destinationPath('bower.json')
);
答案 1 :(得分:0)
不确定您的问题是什么,但您应该阅读有关如何处理文件的Yeoman官方文档:http://yeoman.io/authoring/file-system.html
您正在使用旧的和已弃用的方法。