是的,Babel模块解析可以依赖于环境变量。使用@babel/preset-env插件可以自动为不同的环境编译代码,包括针对不同的浏览器、Node.js和Electron。该插件还提供了一个“targets”选项,允许您根据目标浏览器或Node.js版本的环境变量自动地选择要编译的功能。以下是一个示例:
npm install --save-dev @babel/preset-env
// .babelrc.js
module.exports = { presets: [ ['@babel/preset-env', { targets: process.env.NODE_ENV === 'test' ? { node: 'current' } : { browsers: 'last 2 versions' } }] ] };
在上面的示例中,如果NODE_ENV设置为“test”,则Babel将编译为Node.js的当前版本。否则,它将编译为最近的2个版本的浏览器。您可以根据您的需要设置不同的“targets”选项。