You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js Serverless集成openapi文档插件时路径参数类型错误求助

解决serverless-openapi-documentation插件生成文档时的ERR_INVALID_ARG_TYPE错误

问题场景

基于Node.js和Serverless框架开发的应用中,集成serverless-openapi-documentation插件并完成以下配置:

  • 在serverless.yml中声明插件、配置文档信息,同时引用了ErrorResponse、PutDocumentResponse等JSON模型
  • 引入了外部函数配置文件
  • 编写了ErrorResponse.json和PutDocumentResponse.json模型文件

执行命令serverless openapi generate --output时触发如下错误:

TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string or an instance of Buffer or URL. Received type boolean (true)
    at Object.openSync (fs.js:489:10)
    at Object.writeFileSync (fs.js:1528:35)
    at ServerlessOpenApiDocumentation.generate (D:\Reinvent\Web\thirdparty-api\node_modules\serverless-openapi-documentation\ServerlessOpenApiDocumentation.js:127:12)
    at PluginManager.runHooks (D:\Reinvent\Web\thirdparty-api\node_modules\serverless\lib\classes\plugin-manager.js:530:15)
    at PluginManager.invoke (D:\Reinvent\Web\thirdparty-api\node_modules\serverless\lib\classes\plugin-manager.js:564:20)
    at async PluginManager.run (D:\Reinvent\Web\thirdparty-api\node_modules\serverless\lib\classes\plugin-manager.js:604:7)
    at async Serverless.run (D:\Reinvent\Web\thirdparty-api\node_modules\serverless\lib\serverless.js:174:5)
    at async D:\Reinvent\Web\thirdparty-api\node_modules\serverless\scripts\serverless.js:771:9

错误原因

--output选项需要接收字符串类型的输出路径参数,仅输入--output会被解析为布尔值true,而插件内部调用fs.writeFileSync时要求传入有效路径,因此触发类型错误。

解决方案

方案1:执行命令时指定具体输出路径

在命令中给--output参数添加具体的文件路径,示例:

serverless openapi generate --output ./openapi.json

方案2:在serverless.yml中预先配置输出路径

在serverless.yml的custom.openapi配置块中添加output字段,指定路径后无需在命令中带参数:

custom:
  openapi:
    output: ./openapi.json
    # 保留你已有的其他openapi配置项
    # 比如info、models等

之后直接执行简化命令即可:

serverless openapi generate

内容的提问来源于stack exchange,提问作者Chirag

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 12:06:44