问题描述
在书写完接口的时候,使用apidoc
来生成我们所需要的接口文档的时候,输入apidoc.cmd -i ./constroller -o ./doc
,其中constroller 指定读取源文件的目录,doc是我们要生成的目录,输入完的时候控制台报错:
D:\nodejs\node_modules\apidoc\lib\writer.js:129
const title = projectInfo.title ?? projectInfo.name ?? 'Loading...';
SyntaxError: Unexpected token '?'
at wrapSafe (internal/modules/cjs/loader.js:915:16)
at Module._compile (internal/modules/cjs/loader.js:963:27)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10)
at Module.load (internal/modules/cjs/loader.js:863:32)
at Function.Module._load (internal/modules/cjs/loader.js:708:14)
at Module.require (internal/modules/cjs/loader.js:887:19)
at require (internal/modules/cjs/helpers.js:74:18)
at Object.<anonymous> (D:\nodejs\node_modules\apidoc\lib\index.js:15:16)
at Module._compile (internal/modules/cjs/loader.js:999:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10)
原因分析:
起初我看到这个问题的时候,以为是什么参数没有写,一直检查也没有什么结果,点击到所看到的目录去查看源码的时候,猜测可能用到了判断不对,尝试修改一下也不行,去浏览器查阅关于使用apidoc去生成文档报错的信息也没有发现什么,但使用npm i apidoc -g
进行全局安装的时候,安装的版本是0.51,就猜测是版本的问题
"apidoc": "^0.51.1",
解决方案:
修改低版本的apidoc,如果在VScode里面全局安装报错的话,就在电脑下方导航栏搜索cmd
然后以管理员身份运行即可,输入npm install apidoc@0.17.6 -g
安装即可,再次输入就可以生成我们所需的文档了