为什么我应该在入口 webpack 配置中声明 scss 文件

Why I should state scss file in entry webpack config

为什么我的 webpack 配置无法查看 scss 文件? 如果我明确地将文件添加到 entry 中,那么它正在工作,创建 css 文件。这是一个好习惯吗?

/// <binding ProjectOpened='Watch - Development' />

"use strict";

const path = require('path');
const webpack = require('webpack');
const MiniCssExtractPlugin = require("mini-css-extract-plugin");

module.exports = {
    watch: true,
    entry: {
        app: './src/scripts/app.js',
        People: './Views/People/Index.cshtml.js',
        Service: './Views/Service/Index.cshtml.js',
        sass: './src/sass/app.scss' // <- this should explicitly stated
    },
    plugins: [
        new MiniCssExtractPlugin({
              path: path.join(__dirname, '/wwwroot/css/'),
              filename:  'app.css',
        })
    ],
    output: {
        publicPath: "/js/",
        path: path.join(__dirname, '/wwwroot/js/'),
        filename: '[name].bundle.js'
    },
    module: {
        rules: [
            {
                test: /\.js$/,
                loader: 'babel-loader',
                exclude: /(node_modules)/,
                query: {
                    presets: ['es2015']
                }
            },
            {
                test: /\.ts$/,
                exclude: /node_modules|vue\/src/,
                loader: "ts-loader",
                options: {
                    appendTsSuffixTo: [/\.vue$/]
                }
            },
            {
                test: /\.(sa|sc|c)ss$/,
                use: [
                MiniCssExtractPlugin.loader,
                    { loader: 'css-loader', options: { url: false, sourceMap: true } },
                    { loader: 'sass-loader', options: { sourceMap: true } }
                ]
            },
            {
                test: /\.(png|jpg|gif)$/,
                use: {
                    loader: 'url-loader',
                    options: {
                        limit: 8192
                    }
                }
            },
            {
                test: /\.vue$/,
                loader: 'vue-loader',
            }
        ]
    },
    resolve: {
        alias: {
            vue: 'vue/dist/vue.js'
        },
        extensions: ['.js', '.vue']
    }
};

Webpack 的观察者对 scss 个文件没有任何怨恨。

Webpack 开始从 entry files 中提到的所有文件制作 dependency graph 然后是这些文件中的所有文件 imported 然后是下一级的所有 imports 等等......

Webpack watch 仅跟踪上述依赖关系图中的文件。

现在,您必须将文件导入到依赖关系图中已有的任何文件中。

如果你的 scss 没有被依赖图中的任何文件导入,那么你必须将它添加为 new entry file 或者你可以使用你正在使用的 IDE 的任何插件用于监视 scss 文件并在更改时将它们编译为 css