Задание опций для предустановки Babel отключает транспортер? - PullRequest
0 голосов
/ 20 марта 2019

Итак, проблема, с которой я сталкиваюсь, заключается в следующем:

presets: ["@babel/preset-typescript]

мой код передается, но если я наберу:

presets: [["@babel/preset-typescript", {allExtensions: true, isTSX: true}]]

это не так.

Я использую веб-пакет, но проблема определенно на стороне бабеля. Тем не менее, вот мой конфиг веб-пакета:

const path = require('path');
const webpack = require('webpack');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const envSettings = require(`./frontend.env.${process.env.NODE_ENV}.json`)

module.exports = {

    watchOptions: {
        ignored: [/src\/backend/, /node_modules/],
    },

    entry: {
        app: './src/frontend/react/browserRouter.tsx'
    },

    output: {
        path: path.resolve(__dirname, 'assets/scripts'),
        publicPath: '/assets/scripts'
    },

    /*resolve: {
        extensions: [".ts", ".tsx", ".js"]
    },*/


    module: {
        rules: [{
            test: /\.ts.*$/, // include .js files
            exclude: [/src\/backend/, /node_modules/], // exclude any and all files in the node_modules folder
            use: [{ loader: "babel-loader",
                options:{
                    presets: [["@babel/preset-typescript", {allExtensions: true, isTSX: true}]]
                }}]
        },{
            test: /\.js.*$/, // include .js files
            exclude: [/index\.template\.html/, /html-webpack-plugin/],
            use: [{ loader: "babel-loader",
                options:{
                    presets: [["@babel/preset-env", {useBuiltIns: 'usage'}]]
                } }]
        },
            {
                test: /\.js$/, // include .js files
                enforce: "pre", // preload the jshint loader
                exclude: /node_modules/, // exclude any and all files in the node_modules folder
                use: [{ loader: "source-map-loader" }]
            },{
                test: /\.css$/, use: [
                    'style-loader', 'css-loader']
            },{
                test: /\.(png|svg|jpg|gif|jpeg)$/, use: [
                    'file-loader']
            }]
    },

    plugins: [
        // new BundleAnalyzerPlugin(),
        new webpack.DefinePlugin({
            ENV_SETTINGS: JSON.stringify(envSettings),
        }),
        new HtmlWebpackPlugin({
            filename: path.resolve(__dirname, 'index.html'),
            template: path.resolve(__dirname, 'src/index.template.html')
        }),
    ],

    externals: {
        fs: 'fs'
    }
};

Дает мне следующую ошибку при передаче первого файла:

ERROR in ./src/frontend/react/browserRouter.tsx 7:22
Module parse failed: Unexpected token (7:22)
You may need an appropriate loader to handle this file type.
| import "../../../node_modules/antd/dist/antd.min.css";
| import { AppLoadWithRouter } from "./AppLoader";
> const browserRouter = <BrowserRouter>
|             <AppLoadWithRouter />
|     </BrowserRouter>;

Вот ссылка на выпуск github

...