NodeJS Warning: Accessing non-existent property ‘padLevels‘ 解决办法
这一抛出异常的代码通常处于日志库中(如winstonJS)等。这些库被许多知名npm仓库引用,并在库内部引发了循环依赖问题。但也正因如此,由于其涉及的主要问题是日志问题(发生问题的核心padLevels参数一般也位于日志的setLevels方法中,即确定日志的记录等级),不会影响实际的功能使用。在处理此类问题时,直接在高版本的nodeJS中将对应模块涉及padLevels的变量访问语句屏蔽即可。将
·
NodeJS Warning: Accessing non-existent property ‘padLevels’ 解决办法
Node14以下版本的NodeJS项目在Node14及以上版本中运行时,可能会抛出以下警告:
Warning: Accessing non-existent property 'padLevels' of module exports inside circular dependency
此时,使用node --trace-warnings定位到对应的文件源中,可以找到类似的异常代码:
if (target.padlevels) {
target.levelLength = exports.longestElement(Object.keys(target.levels));
}
将target.padlevels修改为false,即可解决问题,不影响正常使用。
如若使用npm命令进行打包、依赖更新、平台迁移等,亦可使用shell命令进行字符串替换,如:
find -name 'common.js' | xargs perl -pi -e 's|target.padLevels|false|g'
这一抛出异常的代码通常处于日志库中(如winstonJS)等。这些库被许多知名npm仓库引用,并在库内部引发了循环依赖问题。但也正因如此,由于其涉及的主要问题是日志问题(发生问题的核心padLevels参数一般也位于日志的setLevels方法中,即确定日志的记录等级),不会影响实际的功能使用。在处理此类问题时,直接在高版本的nodeJS中将对应模块涉及padLevels的变量访问语句屏蔽即可。
更多推荐
已为社区贡献1条内容
所有评论(0)