我有一个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
的源代码来找出原因。
如截图所示,
this.getOptions()
文件中只有一个node_modules/babel-loader/lib/index.js
的搜索结果。没有定义该函数,只需使用它即可。这应该是一个错误,至少看起来是这样。
为什么
babel team
要写这样的源代码?为什么其他人都认为这是版本冲突而不是代码错误本身?
方法。对于之前使用首选this.getOptions
getOptions
的schema-utils
方法的加载程序来说,这是一个重大变化:
自 Webpack 5 起可用this.getOptions
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
上非常清楚