Serverless项目使用serverless-webpack报TypeError: Cannot read property '1' of null
排查步骤
- 首先校验
tsconfig.json文件语法合法性,重点检查compilerOptions.paths配置项是否存在格式错误、空配置、未闭合符号等问题,该错误90%以上场景由tsconfig路径解析失败触发 - 执行
npm ls tsconfig-paths-webpack-plugin命令检查间接依赖版本,该工具是serverless-webpack用于解析tsconfig路径别名的依赖,v4.0+的部分版本存在空配置解析漏洞,会触发该报错 - 检查是否存在多版本依赖冲突,执行
npm ls typescript webpack ts-loader确认上述依赖仅存在一个符合版本要求的安装实例 - 校验
serverless.yml中custom.webpack.tsConfig配置的文件路径是否正确,是否指向不存在或无读取权限的tsconfig文件
解决方案
- 锁定兼容版本的路径解析依赖,在package.json中添加对应配置后重新安装依赖即可:
- Npm v8+用户添加
overrides配置:
{ "overrides": { "tsconfig-paths-webpack-plugin": "^3.5.2" } }- Yarn用户添加
resolutions配置:
{ "resolutions": { "tsconfig-paths-webpack-plugin": "^3.5.2" } } - Npm v8+用户添加
- 修正tsconfig.json配置,删除空的
paths配置项,或者补充完整的路径映射规则,避免出现无值的别名配置 - 若项目未使用tsconfig路径别名功能,可直接在serverless.yml中关闭路径解析逻辑,规避该问题:
custom: webpack: tsConfigPaths: false - 统一依赖版本,确保
typescript@4.x+、ts-loader@9.x、webpack@5.x与serverless-webpack@5.x版本匹配,卸载所有冗余的同包不同版本实例
内容的提问来源于stack exchange,提问作者Vibin M John
相关产品推荐
相关产品推荐

