Удаление ненужных экспортов из сгенерированных файлов.JS при использовании веб-пакета
Я пишу.NET Core Web-приложение, которое использует ReactJ для внешнего интерфейса. В настоящее время я использую webpack с babel для генерации JS-файлов из моего JSX-источника. У меня это работает, но я заметил существенную проблему с моей текущей настройкой, которую я не смог решить.
Мой текущий файл конфигурации webpack выглядит так:
var webpack = require("webpack");
var PROD = process.env.NODE_ENV !== "development";
module.exports = {
entry: {
firstBundle: "./src/Folder1/AFile.js",
secondBundle: "./src/Folder1/AnotherFile.js",
thirdCaseBundle: "./src/Folder2/ThisFile.js",
fourthBundle: "./src/Folder3/ThatFile.js"
},
output: {
filename: "./wwwroot/js/[name].js"
},
plugins: PROD ? [
new webpack.optimize.UglifyJsPlugin()
] : [],
resolve: {
modules: [
"src",
"node_modules",
"src/Folder1",
"src/Folder2",
"src/Folder3"
]
},
module: {
loaders: [
{
test: /\.jsx?$/,
loader: "babel-loader",
query: { presets: ["env", "react", "stage-0", "stage-2"] }
}
]
}
};
Это генерирует мои JS-файлы, но, похоже, включает в себя каждую экспортированную функцию из каждого модуля в каждом из них, а не только модули, включенные в JavaScript, из которого генерируется пакет.
Например, в приведенном выше примере я получаю несвязанные экспорты из Folder2 и Folder3 в моем firstBundle.js, хотя в AFile.js нет ничего, что ссылается на них.
В настоящее время это работает, но поскольку я добавляю больше модулей и больше файлов JS, это становится неустойчивым с ростом каждого выходного файла. Я полагаю, что одним из решений было бы иметь отдельный файл конфигурации веб-пакета для каждого пакета и ссылаться только на те модули, которые ему необходимы, но в настоящее время у меня есть более 20 пакетов и я не хочу получать такое количество файлов конфигурации (что также потребовало бы мне добавить 20+ шагов к моей сборке в VSTS).