Gulp + webpack-stream. Как создать несколько точек входа с созданием одноимённых файлов на выходе?

Для создания нескольких точек входа с созданием одноименных файлов на выходе используется комбинация инструментов Gulp.js и webpack-stream.

1. Установка необходимых пакетов:
Убедитесь, что у вас установлены Gulp.js и webpack-stream. Если нет, выполните следующую команду:

   npm install gulp webpack-stream --save-dev

2. Настройка gulpfile.js:

   const gulp = require('gulp');
   const webpackStream = require('webpack-stream');
   
   const entryPoints = [
     {
       name: 'entry1',
       entry: './src/entry1.js',
       output: './dist/entry1.js'
     },
     {
       name: 'entry2',
       entry: './src/entry2.js',
       output: './dist/entry2.js'
     },
     // Добавьте столько точек входа, сколько вам необходимо
   ];
   
   gulp.task('scripts', function() {
     return gulp.src(entryPoints.map(entry => entry.entry))
       .pipe(webpackStream({
         mode: 'production',
         output: {
           filename: '[name].js'
         }
       }))
       .pipe(gulp.dest('dist'));
   });
   
   gulp.task('default', gulp.series('scripts'));

В этом примере мы создаем несколько точек входа с использованием массива объектов entryPoints. В каждом объекте определены свойства name (имя точки входа), entry (путь к файлу с точкой входа) и output (путь к файлу на выходе).

Задача 'scripts' определена для обработки скриптов. Мы используем gulp.src для получения всех точек входа через метод map, а затем передаем их в webpackStream с настройками режима 'production'. В свойстве output мы используем шаблон '[name].js', чтобы создать файлы на выходе с именем, равным имени точки входа.

3. Запуск:
Вы можете запустить задачу 'scripts' с помощью команды Gulp:

   gulp scripts

Это приведет к обработке всех точек входа и созданию соответствующих файлов на выходе в папке 'dist'.

Таким образом, используя комбинацию Gulp.js и webpack-stream, вы можете легко создавать несколько точек входа и генерировать одноименные файлы на выходе. Этот подход может быть полезен, когда вам нужно создать различные пакеты с разными точками входа в вашем проекте.