Может ли Babel скомпилировать в ES6 из ESNext? Если нет, что я должен использовать для компиляции JS для ES6 и ES5 с помощью webpack4 - PullRequest
0 голосов
/ 27 октября 2019

Может Babel скомпилировать в ES6 из ESNext ? Если нет, то что я должен использовать для компиляции JS в ES6 для современного браузера, а также в ES5 для старого браузера, используя тип сценария module / nomodule , используя webpack4

Я использую webpack 4.41 с babel 7.6 , и я хотел бы скомпилировать мой код в es6 и es5 в производстве, но я не могу найти хороший способ сделать это. Прямо сейчас Babel компилируется только в es5 .

Если есть другой пакет, который может обработать это, он должен поддерживать Декораторы

Это мой конфигурационный файл webpack

const path = require('path')
const { CleanWebpackPlugin } = require('clean-webpack-plugin')
const MiniCssExtractPlugin = require('mini-css-extract-plugin')

module.exports = {
    entry: {
        app: './app.js',
        dashboard: './dashboard.js',
        data: './data.js',
        show: './show.js',
        new: './new.js'
    },
    output: {
        filename: '[name].js',
        chunkFilename: '[name].bundle.js',
        path: path.resolve(__dirname, '../scripts'),
        publicPath: '/static/scripts/'
    },
    mode: 'development',
    module: {
        rules: [
            {
                test: /\.m?js$/,
                exclude: /(node_modules|bower_components)/,
                use: {
                    loader: 'babel-loader',
                    options: {
                        presets: ['@babel/preset-env'],
                        plugins: [['@babel/plugin-proposal-decorators', { decoratorsBeforeExport: true }], ['@babel/plugin-proposal-class-properties', { loose: true }], ['@babel/plugin-proposal-private-methods', { loose: true }]]
                    }
                }
            },
            {
                test: /\.(sa|sc|c)ss$/,
                use: [
                    {
                        loader: MiniCssExtractPlugin.loader,
                        options: {
                            hmr: process.env.NODE_ENV === 'development'
                        },
                    },
                    'css-loader',
                    'postcss-loader',
                    'sass-loader',
                ],
            },
        ],
    },
    plugins: [
        new CleanWebpackPlugin(),
        new MiniCssExtractPlugin({
            filename: '../styles/app.css',
            chunkFilename: '[id].css',
        })
    ]
} 
...