自定义约曼发电机可以't覆盖文件
Custom Yeoman Generator can't overwrite files
我正在尝试创建一个简单的生成器来标准化节点项目的创建。在我的生成器中,我调用copyTpl,如:
generator.fs.copyTpl(
sourcePath,
destinationPath
context,
//ignore ES6 constructs in our templates
{
interpolate: /<%=(['s'S]+?)%>/g
}
);
只要我的目标目录中不存在任何文件,这就非常有效。不幸的是,如果一个文件存在,并且我选择覆盖它,我会得到以下错误:
Error: no writecb in Transform class
at afterTransform (/Users/gerrard00/projects/generator-mine/node_modules/through2/node_modules/readable-stream/lib/_stream_transform.js:95:33)
at TransformState.afterTransform (/Users/gerrard00/projects/generator-mine/node_modules/through2/node_modules/readable-stream/lib/_stream_transform.js:79:12)
at Object.callback (/Users/gerrard00/projects/generator-mine/node_modules/yeoman-generator/lib/base.js:787:7)
at /Users/gerrard00/projects/generator-mine/node_modules/yeoman-generator/lib/util/conflicter.js:79:18
at Conflicter.<anonymous> (/Users/gerrard00/projects/generator-mine/node_modules/yeoman-generator/lib/util/conflicter.js:193:12)
at PromptUI.onCompletion (/usr/local/opt/nvm/versions/node/v5.0.0/lib/node_modules/yo/node_modules/inquirer/lib/ui/prompt.js:57:10)
at AnonymousObserver.Rx.AnonymousObserver.AnonymousObserver.completed (/usr/local/opt/nvm/versions/node/v5.0.0/lib/node_modules/yo/node_modules/rx-lite/rx.lite.js:1550:12)
at AnonymousObserver.Rx.internals.AbstractObserver.AbstractObserver.onCompleted (/usr/local/opt/nvm/versions/node/v5.0.0/lib/node_modules/yo/node_modules/rx-lite/rx.lite.js:1489:14)
at Subject.Rx.Subject.addProperties.onCompleted (/usr/local/opt/nvm/versions/node/v5.0.0/lib/node_modules/yo/node_modules/rx-lite/rx.lite.js:5871:19)
at Subject.tryCatcher (/usr/local/opt/nvm/versions/node/v5.0.0/lib/node_modules/yo/node_modules/rx-lite/rx.lite.js:63:31)
这意味着我的生成器只能在空文件夹中工作。我已经重读了大约二十遍"创建生成器"文档,但我不知道我遗漏了什么。我需要向生成器中添加什么来防止此错误?
更新:尽管有错误,文件实际上还是被覆盖了。
事实证明,问题在于我的代码使用nodewalk包异步遍历目录。调用方法使用了generator async方法,但同步调用了done回调。我修改了它,在walk-end事件处理程序中调用done回调,错误就消失了。
相关文章:
- 使用新的 CSS 文件覆盖当前网站
- node.js打开的文件覆盖现有文件
- 加载CSS文件并覆盖上一个文件
- Visual Studio 2015 NodeJS/Typescript 覆盖节点启动文件
- 从远程文件覆盖花哨的框
- 如何在Chrome应用程序中覆盖文件
- 使用node.js覆盖文件中的一行
- 如何使用 jsduck 记录覆盖文件夹中的类
- 使用 HTML5 FileWriter 覆盖文件
- 早午餐环境覆盖文件
- 节点.js fs.writeFile 未完全覆盖文件
- 用可变数据覆盖文件内容
- 自定义约曼发电机可以't覆盖文件
- fs.writeFile未覆盖文件
- Html/JavaScript:每次下载时都覆盖文件
- Visual Studio Team Services / SonarQube:转换.trx/.覆盖文件到LCOV
- 覆盖文件.标题,然后使用原始方法
- 业力覆盖文件路径
- Lite服务器未检测到“bs-config.json”或“bs-connfig.js”覆盖文件
- 覆盖文件在node js中不起作用