Я получаю странный вывод с 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
Спасибо за помощь!