webpack только компилирует файлы с последними изменениями - PullRequest
3 голосов
/ 12 июня 2019

Я работаю над большой кодовой базой; У меня есть несколько src файлов для компиляции. Когда я запускаю watch или компилирую для производства, он скомпилирует все файлы, найденные в src. Именно это и должен делать веб-пакет.

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

Вот мой конфиг вебпак

const path = require("path");
const webpack = require("webpack");
const extractTextPlugin = require("extract-text-webpack-plugin");
const {VueLoaderPlugin} = require("vue-loader");

module.exports = {
    entry: {
        clients:
            "./src/clients/Resources/vue-js/clients.js",
        dashboard:
            "./src/dashboard/Resources/vue-js/dashboard.js",
        mapView:
            "./src/mapView/Resources/vue-js/mapView.js",
        admin:
            "./src/admin/Resources/vue-js/admin.js"
    },

    output: {
        path: path.join(__dirname, "./dist/"),
        publicPath: "/dist/",
        filename: "js/[name].js",
        chunkFilename: "js/[name].js"
    },
    optimization: {
        splitChunks: {
            cacheGroups: {
                vendors: {
                    name: "vendor",
                    filename: "js/vue_bundle.js",
                    automaticNameDelimiter: "_",
                    test: /[\\/]node_modules[\\/]/,
                    chunks: "all",
                    priority: 1,
                    minChunks: 2,
                    minSize: 0
                },
            }
        },
        occurrenceOrder: true,
    },
    module: {
        rules: [
            {
                test: /\.vue$/,
                loader: "vue-loader"
            },
            {
                test: /\.js$/,
                loader: "babel-loader",
                exclude: /node_modules/,
                options: {
                    presets: ["env"]
                }
            },
            {
                test: /\.(png|woff|woff2|eot|ttf|svg)$/,
                loader: "url-loader?limit=100000"
            },
            {
                test: /\.css$/,
                use: extractTextPlugin.extract({
                    fallback: "style-loader",
                    use: "css-loader"
                })
            },
            {
                test: /\.scss$/,
                use: extractTextPlugin.extract({
                    // use: ['raw-loader', 'sass-loader']
                    use: "raw-loader!sass-loader"
                })
            },
            {
                test: /\.sass$/,
                use: extractTextPlugin.extract({
                    fallback: "style-loader",
                    use: "css-loader!sass-loader"
                })
            },
            {
                test: /\.jpe?g$|\.ico$|\.gif$|\.png$|\.svg$|\.woff$|\.ttf$|\.wav$|\.mp3$/,
                loader: "file-loader?name=[name].[ext]"
            },
            {
                test: /\.yaml$/,
                loader: "json-loader!yaml-loader"
            }
        ]
    },


    plugins: [
        new extractTextPlugin({
            filename: "css/[name].css",
            allChunks: true
        })
    ]
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...