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

标签 javascript node.js yeoman yeoman-generator

我正在与 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/

相关文章:

javascript - 单击时 HTML5 更改描述文本

javascript - 为类的所有实例 stub 方法

node.js - NPM 无法安装类型

javascript - 类型错误 : Cannot read Property 'extend' of undefined , Yeoman 生成器

javascript - Grunt 从我的脚本和 CSS 中删除异步和延迟

javascript - 滚动页面时子菜单离开菜单

javascript - 使用JS控制嵌入的YouTube视频

javascript - Keystone JS View 上的事件不起作用

javascript - svelte:svelte 如何在 if block 之间运行函数?

coffeescript - 将 CoffeeScript 与基本的 Yeoman 项目一起使用。