Babel.js “this.getOptions不是一个函数”是webpack的一个bug吗?

wr98u20j  于 2023-08-01  发布在  Babel
关注(0)|答案(1)|浏览(307)

我有一个node.js后端项目,我使用webpack来构建它。

"webpack": "^4.46.0",
"webpack-cli": "^4.4.0"

字符串
它报告错误,如

Module build failed (from ./node_modules/babel-loader/lib/index.js):
TypeError: this.getOptions is not a function


然后我读了/node_modules/babel-loader/lib/index.js的源代码来弄清楚为什么。


的数据
正如您在屏幕截图中看到的,在node_modules/babel-loader/lib/index.js文件中只有一个this.getOptions()的搜索结果。没有函数的定义,它只是被使用。这应该是一个bug,至少看起来是这样。
为什么babel team要这样写源代码?为什么其他人都认为这是版本冲突,而不是代码错误本身?

yc0p9oo0

yc0p9oo01#

请参见加载器的getOptions方法
Webpack 5附带了内置的this.getOptions方法,可在加载器上下文中使用。这是对使用getOptions方法的装载机的一个突破性变化,而不是以前的首选schema-utils
this.getOptions自Webpack 5起可用
babel-loader 9.x支持webpack 5.x,因为它使用this.getOptions
如果你想使用webpack 4.x,那么你应该使用babel-loader 8.x,它支持webpack 4.x或5.x。babel-loder 8.x使用loaderUtils.getOptions(this)
readme上的版本兼容性说明非常清楚

相关问题