webpack - несколько входов и выходов с одинаковой структурой, но разными каталогами? - PullRequest
2 голосов
/ 29 октября 2019

Я относительно новичок с webpack, и мне было интересно, возможно ли иметь несколько записей и выходов с одинаковой структурой папок, но в разных каталогах. Предположим, у меня есть эта структура:

application
  views
    scripts
      docs
        file1.js
        file2.js
      company
        cp1.js
        cp2.js

, и я хочу вывести в эту директорию / структуру:

public
  js
    build
      docs
        file1.js
        file2.js
      company
        cp1.js
        cp2.js

На самом деле мой webpack.config.js выглядит так:

entry: {
        app: path.resolve(__dirname, 'application', 'views', 'scripts', 'file1.js'),
        app2: path.resolve(__dirname, 'application', 'views', 'scripts', 'file2.js'),
    },
    output: {
        path: path.resolve(__dirname, 'public', 'js', 'scripts'),
        filename: '[name].bundle.js'
    }

но я не хочу указывать отдельные записи для всех файлов js, и он выводится в неправильном каталоге. Возможно ли это?

1 Ответ

0 голосов
/ 30 октября 2019

Вот пример кода webpack.config.js, который сгенерирует требуемую структуру.

const glob = require('glob');
const path = require('path');

function getEntries(pattern) {
  const entries = {};
  glob.sync(pattern).forEach((file) => {
    const outputFileKey = file.replace('application/views/scripts/', '');
    entries[outputFileKey] = path.join(__dirname, file);
  });
  return entries;
}

module.exports = {
  entry: getEntries('application/**/*.js'),
  output: {
    path: __dirname + '/public/js/build',
    filename: '[name]',
  },
  module: {
    rules: [
      {
        test: /\.(js)$/,
        exclude: /node_modules/,
        use: ['babel-loader'],
      },
    ],
  },
  resolve: {
    extensions: ['.js'],
  },
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...