IE11 Svelte / Babel / Rollup中的Function.prototype.toString问题

时间:2019-12-17 12:53:43

标签: javascript internet-explorer-11 babeljs svelte rollupjs

我当前的rollup.config.js是

    commonjs(),
    babel({
                extensions: ['.js', '.mjs', '.html', '.svelte'],
                runtimeHelpers: true,
                exclude: ['node_modules/@babel/**', 'node_modules/core-js/**' ], // <= /!\ NOT 'node_mobules/**'
                presets: [
                    ['@babel/preset-env', {
                    // adapter to ensure IE 11 support
                    targets: '> 0.25%, not dead, IE 11',
                    "modules": false,
                    "spec": true,
                    "forceAllTransforms": true,
                    useBuiltIns: 'usage',
                    corejs: 3
                    }]
                ],
                plugins: [
                    '@babel/plugin-syntax-dynamic-import',
                    [
                        '@babel/plugin-transform-runtime',
                        {
                            useESModules: true
                        }
                    ]
                ]
              })

在IE11中遇到问题:

  

Function.prototype.toString:“此”不是Function对象

如何正确解决该问题?

我试图

这意味着我必须配置    resolve-plugin,但这似乎是不正确的方式,因为那时它被标记为未使用。

1 个答案:

答案 0 :(得分:1)

正确运行rollup.config

commonjs(),
babel({
    extensions: ['.js', '.mjs', '.html', '.svelte'],
    runtimeHelpers: true,
    exclude: ['node_modules/@babel/**', 'node_modules/core-js/**' ], 
    presets: [
        ['@babel/preset-env', {
        targets: {
            browsers: [
                "> 0.25%"
                ,"not dead"
                ,"IE 11"
            ]
        },
        "modules": false,
        "spec": true,
        "forceAllTransforms": true,
        useBuiltIns: 'usage',
        corejs: 3
        }]
    ],
    plugins: [
        '@babel/plugin-syntax-dynamic-import',
        [
            '@babel/plugin-transform-runtime',
            {
                useESModules: true
            }
        ]
    ]
}),
polyfill(['@webcomponents/webcomponentsjs'])

polyfill是http://192.168.1.111/