Как «включить» и «исключить» работает в загрузчике веб-пакетов

Обновление & Ответ:

Мое недопонимание было:

Все импортированные / необходимые файлы будут преобразованы загрузчиком.

Однако некоторые импортированные / обязательные файлы не нужно преобразовывать. Например, js-файлы в "node_module" были обработаны. Так что нет необходимости снова трансформироваться загрузчиком Babel. Именно поэтому нам нужно "исключить: / node_modules /" в загрузчике.

Аналогично, если вы знаете, какие файлы должны быть преобразованы загрузчиком, вы можете использовать «include».

Проще говоря, entry.js будет включать все импортированные / необходимые файлы. Но среди этих файлов только некоторые из них необходимо преобразовать. Вот почему «загрузчик» вводит «включить» и «исключить».

Я до сих пор не совсем понимаю, почему мы должны использовать «include» или «exclude» в загрузчике веб-пакета.

Поскольку входной файл js всегда должен будет рекурсивно включать свои импортированные / требуемые файлы js. Все импортированные / необходимые файлы будут преобразованы загрузчиком. Если это так, почему мы должны «включать» или «исключать» в загрузчике?

Одним из распространенных случаев является «exclude: / node_modules /». Меня смущает то, что если для входного файла js нужны файлы из node_modules, то мы исключаем node_modules. Тогда окончательный пакетный файл не будет содержать требуемый файл из node_modules. В этом случае финальный файл bundle.js не будет работать правильно. Я что-то здесь упускаю?

module.exports = {
  entry: [
    './index.js'
  ],
  output: {
    path: path.join(__dirname,"public"),
    filename: 'bundle.js'
  },
  module: {
    loaders: [{
      test: /\.js$/,
      loader: 'babel',
      exclude: /node_modules/,
      query: {
          presets: ['es2015']
        }
    }]
  }
}; 

Спасибо

Дерек

Ответы на вопрос(2)

Ваш ответ на вопрос