Удаление ненужных экспортов из сгенерированных файлов.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).

0 ответов

Другие вопросы по тегам