我正在与 Yeoman 一起开发自己的生成器。当我尝试复制一些文件时,没有任何反应。没有错误,该过程将继续直至结束,但不会复制任何文件。生成器有一个/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');
},
这是控制台输出:
$ 哟 trx
方法 1 刚刚运行
方法 2 刚刚运行
?您的应用程序的名称是什么? 科辛
?您想生成演示部分吗?是的
创建的所有目录
copyMainFiles 目录:C:\cygwin\Applications\MAMP\htdocs\prueba-trx+++++
文件存在吗?错误
已复制页脚
已复制 grunt 文件
已复制包
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')
);
关于javascript - 使用 Yeoman 生成器复制文件不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32635080/