我正在学习webpack,并且有一个简单的javascript,它使用了一些ES6。
function sayHello(){
let tool = 'webpack';
alert('Hello I am ${tool}, welcome to ES6');
}
/*module.exports = sayHello;*/
// use ES6 modules
export { sayHello };我已经配置了像这样的babel装载器
module: {
rules: [
{
test: /\.m?js$/,
exclude: /(node_modules|bower_components)/,
use: {
loader: 'babel-loader',
options: {
presets: ['@babel/preset-env']
}
}
}
]
}如果我检查已转移的文件,我看到它将let转换为var,但我希望它会将'${tool}‘内插到类似于'.concat(tool,.’)的内容中。
我遗漏了什么?
发布于 2021-02-18 12:47:53
@babel/preset-env只对特定目标使用转换。这意味着,如果目标环境相当新,则只应用几个转换,如果目标环境陈旧,则应用大量转换。
您可以使用以下方法检查默认值:
npx browserlist这应该会给出@babel/preset-env所针对的浏览器列表。
尽管这么说。你所拥有的不需要转换。您可能在考虑模板文字:
alert(`Hello I am ${tool}, welcome to ES6`);注意,字符`与'不同。
我认为,在撰写这篇文章时,应该对默认安装进行转换。因为IE11不支持模板文字,所以它在浏览器列表中。
https://stackoverflow.com/questions/66259961
复制相似问题