我在IE11 SCRIPT1002中有错误:语法错误(类语法问题)。我的两行代码:
import { struct } from 'superstruct';
console.log('finished');
我不希望我babel7将类编译成ES5代码
我试过写.babelrc文件:
{
"presets": [
[
"@babel/preset-env",
{
"targets": {
"ie": "11"
}
}
]
]
}
而且https://babeljs.io/docs/en/babel-plugin-transform-classes也没有修复
插件更新:我尝试过使用@babel/-preset-es2015来转换ES5代码中的类,但是这个包在babel7中被弃用了
请帮帮我
发布于 2019-03-01 04:26:00
为了在Babel 7中转换node_modules和子包,您需要使用babel.config.js
文件而不是.babelrc
文件。
请参阅project-wide configuration上的此issue comment和巴别塔文档。具体来说
在Babel 7.x中,Babel有一个“根”目录的概念,默认为当前工作目录。对于项目范围的配置,Babel将自动在此根目录中搜索"babel.config.js“。
..。
因为项目范围的配置文件与配置文件的物理位置是分开的,所以它们非常适合必须广泛应用的配置,甚至允许插件和预设轻松地应用于node_modules或符号链接包中的文件,这在Babel 6.x中传统上很难配置。
它的不足之处在于,.babelrc
用于本地项目文件转换(不包括node_modules
),而babel.config.js
应该被认为是整个项目范围的,并将在捆绑时应用于包依赖项(node_modules
)。这有点令人困惑,但希望这能有所帮助!
编辑
这里有一些关于完整的项目配置的更多信息,以便使用webpack构建您的示例文件。请注意,如果您在这里使用.babelrc
而不是babel.config.js
,它将无法工作。运行webpack-cli
会生成一个不使用script.out.js
关键字的脚本类。
script.js
import { struct } from 'superstruct';
console.log('finished');
babel.config.js
module.exports = {
"presets": [
[
"@babel/preset-env",
{
"targets": {
"ie": "11"
}
}
]
]
};
webpack.config.js
module.exports = {
entry: './script.js',
output: {
path: __dirname,
filename: 'script.out.js',
},
module: {
rules: [ {
test: /\.m?js$/,
use: {
loader: 'babel-loader'
}
} ]
}
}
包依赖项
"@babel/core": "^7.3.4",
"@babel/preset-env": "^7.3.4",
"babel-loader": "^8.0.5",
"superstruct": "^0.6.0",
"webpack-cli": "^3.2.3"
https://stackoverflow.com/questions/54788809
复制相似问题