📅  最后修改于: 2023-12-03 15:06:15.498000             🧑  作者: Mango
在构建服务器时,发现 server.js 模块构建失败,错误信息来自于 babel-loader
模块的 index.js
文件。错误信息可能类似于以下内容:
ERROR in ./server.js
Module build failed (from ./node_modules/babel-loader/lib/index.js):
Error: Plugin/Preset files are not allowed to export objects, only functions. In [...]
该错误通常是由于使用了旧版本的 babel-loader
模块,导致对某些新的包含配置选项的 preset 进行解析时出错。一个可能的场景是,在 babel-loader
升级到 v8.0.0
以上版本之前,程序员将某些选项配置在对象中,而不是将其传递给 webpack 配置文件,这可能导致无法正确解析 presets。
babel-loader
如果您使用的是旧版本的 babel-loader
,尝试将其升级到 v8.0.0
以上版本,以解决上述问题。
可以通过以下命令来升级:
npm i -D babel-loader@latest
如果您已经使用最新版本的 babel-loader
,可能需要将预设选项(preset options)传递给 babel.config.js
文件,而不是将其配置在对象中。例如:
// webpack.config.js
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
use: {
loader: 'babel-loader',
options: {
presets: [
[
'@babel/preset-env',
{
targets: {
node: 'current',
},
},
],
],
plugins: [
'@babel/plugin-transform-runtime',
],
},
},
},
],
},
替换为:
// babel.config.js
module.exports = {
presets: [
[
'@babel/preset-env',
{
targets: {
node: 'current',
},
},
],
],
plugins: [
'@babel/plugin-transform-runtime',
],
};
通过升级 babel 以及使用正确的 babel 配置选项方法,可以轻松地解决在 JavaScript 服务器构建过程中出现的类型为“错误。服务器 server.js 模块构建失败”的问题。