Как «включить» и «исключить» работает в загрузчике веб-пакетов
Мое недопонимание было:
Все импортированные / необходимые файлы будут преобразованы загрузчиком.
Однако некоторые импортированные / обязательные файлы не нужно преобразовывать. Например, 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']
}
}]
}
};
Спасибо
Дерек