Open Beiluola opened 4 years ago
您好,我使用egg-swagger-doc,版本2.3.2 问题是这样的。 我使用eggjs的typescript模板开发项目,安装了egg-swagger-doc插件, npm run start报错,错误原因部分提示如下:
egg-swagger-doc
2.3.2
eggjs
typescript
npm run start
2020-07-23 23:07:51,521 ERROR 11668 [-/127.0.0.1/-/1ms GET /] nodejs.MODULE_NOT_FOUNDError: Cannot find module 'E:\personal\glacier\test\fixtures\apps\glacier-demo-ts\app\contract\format.d' Require stack: - E:\personal\glacier\node_modules\egg-swagger-doc\lib\contract\index.js - E:\personal\glacier\node_modules\egg-swagger-doc\app\extend\context.js
然后我找到了异常代码:
// egg-swagger-doc\lib\contract\index.js // 第50、51行 if (stat.isFile() && [ '.js', '.ts' ].indexOf(path.extname(filepath)) !== -1) { const def = require(filepath.split(/\.(js|ts)/)[0]);
异常的原因是,我的tsconfig.json文件声明了"declaration":true,在使用tsc命令编译app/contract目录下的ts文件时会生成.js文件和.d.ts声明文件。
tsconfig.json
"declaration":true
tsc
app/contract
ts
.js
.d.ts
您的代码中会把匹配.ts后缀的.d.ts文件作为模块使用require('.d')加载,而这个文件并不存在,所以报错。
.ts
require('.d')
解决方法是跳过.d.ts类型的声明文件。 这是我的修复代码。 请尽快修复,祝好。
您好,我使用
egg-swagger-doc
,版本2.3.2
问题是这样的。 我使用eggjs
的typescript
模板开发项目,安装了egg-swagger-doc
插件,npm run start
报错,错误原因部分提示如下:然后我找到了异常代码:
异常的原因是,我的
tsconfig.json
文件声明了"declaration":true
,在使用tsc
命令编译app/contract
目录下的ts
文件时会生成.js
文件和.d.ts
声明文件。您的代码中会把匹配
.ts
后缀的.d.ts
文件作为模块使用require('.d')
加载,而这个文件并不存在,所以报错。解决方法是跳过
.d.ts
类型的声明文件。 这是我的修复代码。 请尽快修复,祝好。