我需要支持相当老的浏览器...我会说最后回到IE10或11。
我添加了rollup和terser...我想写带有箭头函数的ES2017代码,等等。然后将其转换为非常旧的JS版本,以便在这些旧浏览器中运行。
下面是我的汇总配置:
import { terser } from 'rollup-plugin-terser';
export default {
input: 'src/load.js',
output: {
file: 'dist/load.js',
format: 'iife',
sourcemap: false,
plugins: [
// https://github.com/terser/terser#minify-options
terser({
ecma: '5',
compress: true,
mangle: true,
}),
],
},
};不幸的是,这似乎并没有真正将我的任何花哨的箭头函数转换成普通的匿名函数,等等……我有点困惑,我到底做错了什么?
我看到我可以通过compress选项手动控制这些功能,但我不认为应该要求我手动设置每种类型的功能,因为我不知道哪种浏览器支持什么。我会怀疑我只是告诉它“转换为ES5”,然后它就会做剩下的事情。
发布于 2020-10-07 07:00:06
下面是我解决这个问题的方法
import { terser } from 'rollup-plugin-terser';
import getBabelOutputPlugin from '@rollup/plugin-babel';
export default {
input: 'src/load.js',
plugins: [
// https://github.com/terser/terser#minify-options
terser({
ecma: '5',
compress: true,
mangle: true,
}),
getBabelOutputPlugin({
babelHelpers: 'bundled',
presets: [
['@babel/preset-env', {
targets: '> 0.25%, last 2 versions, Firefox ESR, not dead',
}],
],
}),
],
output: {
file: 'dist/load.js',
format: 'iife',
sourcemap: false,
},
};https://stackoverflow.com/questions/64234140
复制相似问题