javascript - 为什么在这种情况下 babel 会转换 import 和 export?
问题描述
我有这个babel.config.js
:
const presets = [
[
"@babel/env",
{
targets: {
edge: "17",
firefox: "60",
chrome: "67",
safari: "11.1",
},
useBuiltIns: "usage",
},
],
["@babel/preset-react"],
];
如果以上所有目标都支持/ ,为什么它会将 es6 import
/转换为以下内容:export
import
export
var _styles = require("@material-ui/styles");
var _core = require("@material-ui/core");
exports.default = _default;
解决方案
因为你需要明确告诉 Babel 以 ES 模块为目标。它无法从您的目标浏览器列表中推断出这一点。
查看@babel-env 文档,这就是您将支持 esmodules 的方式。
"@babel/env",
{
"targets": {
"esmodules": true
}
}
请注意:指定 esmodules 目标时,浏览器目标将被忽略。
推荐阅读
- python - 底图中的坐标与真实坐标不符
- sql - 如何选择具有相同column_a但column_b不同的行?
- php - 如何正确验证验证码?
- c++ - 在opencv中创建4x4 mat矩阵时出错
- c# - Automapper 集合映射:如何确定对象是否已更新或已创建
- java - 如何避免 BufferReader 中出现 NullPointException?
- go - 去下载不需要的依赖
- html - html中元素之间的间距
- javascript - 如何在滚动期间修复地图摆动
- react-native - React Native Picker,当从 Picker 中选择一个选项时,屏幕转到下一个屏幕