首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >支持使用terser + rollup的旧浏览器?

支持使用terser + rollup的旧浏览器?
EN

Stack Overflow用户
提问于 2020-10-07 05:36:42
回答 1查看 676关注 0票数 0

我需要支持相当老的浏览器...我会说最后回到IE10或11。

我添加了rollupterser...我想写带有箭头函数的ES2017代码,等等。然后将其转换为非常旧的JS版本,以便在这些旧浏览器中运行。

下面是我的汇总配置:

代码语言:javascript
复制
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”,然后它就会做剩下的事情。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-07 07:00:06

下面是我解决这个问题的方法

代码语言:javascript
复制
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,
  },
};
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64234140

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档