gpt4 book ai didi

javascript - 自定义 Yeoman 生成器无法覆盖文件

转载 作者:行者123 更新时间:2023-12-03 08:20:33 24 4
gpt4 key购买 nike

我正在尝试创建一个简单的生成器来标准化 Node 项目的创建。在我的生成器中,我调用 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)

这意味着我的生成器只能在空文件夹中运行。我已经重新阅读了“创建生成器”文档大约二十次,但我不知道我错过了什么。我需要在生成器中添加什么来防止出现此错误?

更新:尽管出现错误,但文件实际上已被覆盖。

最佳答案

事实证明,问题在于我的代码使用 node-walk 包异步遍历目录。调用方法使用了生成器异步方法,但同步调用了done回调。我将其修改为在步行结束事件处理程序中调用完成回调,并且错误消失了。

关于javascript - 自定义 Yeoman 生成器无法覆盖文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33766913/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com