Загрузчик Babel испускает несколько заданий - PullRequest
0 голосов
/ 16 февраля 2020

Я получаю странный вывод с babel-loader. Я использую webpack 4 и перестал использовать ts-loader, хотел настроить таргетинг на более старый браузер. ts-loader работал как положено, генерируя один файл: bundle. js. Но babel-loader генерирует несколько файлов: bundle. js, 0.bundle. js, 1.bundle. js, ...

Как получить только один комплект. js file?

Вот моя конфигурация:

webpack.config. js

const path = require('path');
const CopyPlugin = require('copy-webpack-plugin');

module.exports = {
    entry: './src/index.ts',
    devtool: 'inline-source-map',
    watch: process.env.NODE_ENV == "dev",
    mode: process.env.NODE_ENV == "dev" ? "development" : "production",
    module: {
        rules: [
            {
                test: /\.tsx?$/,
                use: 'babel-loader',
                // use: 'ts-loader',
                exclude: /node_modules/,
            },
            {
                test: /\.html$/,
                loader: "html-loader"
            },
            {
                test: /\.(s*)css$/,
                use: ['style-loader', 'css-loader', 'sass-loader']
            },
            {
                test: /\.(jpg|jpeg|gif|png|svg)$/,
                use: [
                    {
                        loader: "url-loader",
                        options: {
                            limit: 8192
                        }
                    }
                ]
            },
            {
                test: /\.(ttf|eot|woff|woff2)$/,
                loader: "file-loader",
                options: {
                    name: "fonts/[name].[ext]"
                }
            }
        ],
    },
    resolve: {
        extensions: ['.tsx', '.ts', '.js'],
        alias: {
            // LOGGER
            logger: path.resolve(__dirname, "src/logger/default_logger"),
            screen_logger_output: path.resolve(__dirname, "src/logger/screen_logger_output"),
            // TOOLS
            components_loader: path.resolve(__dirname, "src/tools/default_components_loader"),
            dom_string_helper: path.resolve(__dirname, "src/tools/default_dom_string_helper"),
            pager: path.resolve(__dirname, "src/tools/tizen_pager"),
            circle_progress_bar_helper: path.resolve(__dirname, "src/tools/circle_progress_bar_helper"),
            toast_popup_helper: path.resolve(__dirname, "src/tools/toast_popup_helper"),
            // CONFIG
            cultures: path.resolve(__dirname, "src/cultures"),
            languages: path.resolve(__dirname, "src/languages"),
            config: path.resolve(__dirname, "src/config"),
            // COMPONENTS
            component: path.resolve(__dirname, "src/components/component"),
            app_container: path.resolve(__dirname, "src/components/app_container/app_container"),
            open_flight: path.resolve(__dirname, "src/components/open_flight/open_flight"),
            // DATA
            api_data_access_layer: path.resolve(__dirname, "src/data/api_data_access_layer"),
            tizen_data_access_layer: path.resolve(__dirname, "src/data/tizen_data_access_layer"),
            // CONTROLLERS
            login_controller: path.resolve(__dirname, "src/controllers/login_controller"),
            // REPOSITORIES
            // ENUMS
        }
    },
    plugins: [
        new CopyPlugin([
            { from: "./src/components/home/home.html", to: '/home/christophe/workspace/tinylogbook/js/home.html' },
        ]),
    ],
    output: {
        filename: 'bundle.js',
        path: "/home/christophe/workspace/tinylogbook/js"
        // path: path.resolve(__dirname, 'dist'),
        // publicPath: "/"
    }
};

babel.config. js

module.exports = function (api) {
    api.cache(true);

    return {
      "presets": [
        ["@babel/env", { "targets": "> 0.25%", "useBuiltIns": "usage", "corejs": 2  }],
        // "@babel/preset-react",
        ["@babel/preset-typescript", { "allExtensions": true, "isTSX": false }],
      ],
      "plugins": [
        "@babel/plugin-syntax-dynamic-import",
        "@babel/plugin-proposal-class-properties",
        "@babel/plugin-proposal-object-rest-spread"
      ]
    }
  }

Консольный вывод

> template-wear@1.0.0 dev /media/christophe/Data/Dropbox/Documents/Developpement/Tiny_Logbook/webpack-wear-tinylogbook
> env NODE_ENV=dev webpack


webpack is watching the files…

Hash: 25a11cab944b59e77f59
Version: webpack 4.41.5
Time: 2715ms
Built at: 02/16/2020 10:36:44 AM
      Asset       Size  Chunks             Chunk Names
0.bundle.js   23.1 KiB       0  [emitted]  
1.bundle.js   10.3 KiB       1  [emitted]  
2.bundle.js   9.19 KiB       2  [emitted]  
3.bundle.js   8.41 KiB       3  [emitted]  
4.bundle.js   7.28 KiB       4  [emitted]  
5.bundle.js   4.15 KiB       5  [emitted]  
6.bundle.js   3.99 KiB       6  [emitted]  
7.bundle.js   2.19 KiB       7  [emitted]  
8.bundle.js   3.81 KiB       8  [emitted]  
  bundle.js   5.91 MiB    main  [emitted]  main
  home.html  627 bytes          [emitted]  
Entrypoint main = bundle.js
[./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./src/global.scss] 301 bytes {main} [built]
[./node_modules/moment/locale sync recursive ^\.\/.*$] ./node_modules/moment/locale sync ^\.\/.*$ 3 KiB {main} [optional] [built]
[./src lazy recursive ^\.\/components.*$] ./src lazy ^\.\/components.*$ namespace object 160 bytes {main} [built]
[./src sync recursive ^\.\/components.*\.html$] ./src sync ^\.\/components.*\.html$ 288 bytes {main} [built]
[./src/config.ts] 392 bytes {main} [built]
[./src/cultures.ts] 112 bytes {main} [built]
[./src/global.scss] 603 bytes {main} [built]
[./src/index.ts] 1.73 KiB {main} [built]
[./src/languages.ts] 440 bytes {main} [built]
[./src/logger/default_logger.ts] 2.85 KiB {main} [built]
[./src/logger/screen_logger_output.ts] 1.23 KiB {main} [built]
[./src/tizen/circle_helper.js] 359 bytes {main} [built]
[./src/tizen/tau.js] 1.28 MiB {main} [built]
[./src/tools/default_components_loader.ts] 4.49 KiB {main} [built]
[./src/tools/default_dom_string_helper.ts] 2.03 KiB {main} [built]
    + 147 hidden modules

Спасибо за помощь!

...