要避免在目标Node.js版本中使用不可用的新JavaScript功能,可以通过配置Babel来转换代码并确保兼容性。
在项目的根目录下创建一个名为next.config.js的文件,并添加以下内容:
module.exports = {
webpack: (config, { isServer }) => {
// 只在服务器端进行配置
if (isServer) {
// 配置Babel
config.module.rules.push({
test: /\.js$/,
exclude: /node_modules/,
use: {
loader: 'babel-loader',
options: {
presets: [['@babel/preset-env', { targets: { node: 'current' } }]],
},
},
});
}
return config;
},
};
上述配置会将Babel添加到服务器端的Webpack配置中,并使用@babel/preset-env
预设来根据当前Node.js版本转换代码。
确保已安装以下依赖项:
npm install babel-loader @babel/preset-env --save-dev
这样,Webpack在解析next.config.js文件时会应用这个配置,并在构建服务器端代码时使用Babel来转换代码。这样可以确保使用了不可用的新JavaScript功能的代码在目标Node.js版本中也能正常运行。