让babel6从webpack中支持数组的最佳方法是什么?

zengzsys  于 2023-02-12  发布在  Webpack
关注(0)|答案(2)|浏览(124)

我正在使用下面的webpack配置:

var path = require('path');
var webpack = require('webpack');

module.exports = {
    plugins: [
        new webpack.ProvidePlugin({
            'fetch': 'imports?this=>global!exports?global.fetch!whatwg-fetch'
        })
    ],
    entry: {
        demo1 : ['babel-polyfill', './src/js/page/demo1.js']
    },

    output: {
        path: 'dist/js/page',
        filename: '[name].js'
    },
    devtool: 'eval-source-map',
    module: {
        loaders: [
            {
                test: /\.js$/,
                include: [
                    path.resolve(__dirname, "src")
                ],
                exclude: path.resolve(__dirname, "node_modules"),
                loader: "babel-loader",
                query: {
                    plugins: ['transform-runtime'],
                    presets: ['es2015', 'react']
                }
            },
            { test: /\.scss$/, loader: 'style!css!sass?sourceMap'}
        ]
    },
    resolve: {
        root: path.resolve(__dirname, "src"),
        extensions: ['', '.js', '.json', '.scss']
    }
};

如图所示,我将整个babel-polyfill模块合并到入口文件demo1.js中以支持Array.from,但我不认为这样做是一个好主意,因为这样会使入口文件太重。
那么,这里是否有任何loader/plugin/preset可以像babel-polyfill那样用于支持webpack中的Array.from

hwamh0ep

hwamh0ep1#

那么您将希望直接与core-js集成,这是Babel在幕后使用的,然后,您可以通过显式地要求单独的模块来挑选您希望提供兼容性的特性。

require('core-js/fn/array/from');

// Then, from within any module:
Array.from(new Set([1, 2, 3, 2, 1])); // => [1, 2, 3]

这是巴别塔6将有效地为您设置通过预置。

bnl4lu3b

bnl4lu3b2#

我知道这条线是旧的,但我偶然发现它,而谷歌。
另一种方法是抛弃babel-polyfill,使用dynamic-polyfill
你可以用这样的词

import polyfill from 'dynamic-polyfill'

polyfill({
  fills: ['Array.from'],
  afterFill() {
    // your code
  }
})

然后,浏览器仅在需要时才下载多边形填充。

相关问题