代码之家  ›  专栏  ›  技术社区  ›  bondythegreat

为什么要在条目webpack config中声明scss文件

  •  0
  • bondythegreat  · 技术社区  · 6 年前

    为什么我的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']
        }
    };
    
    1 回复  |  直到 6 年前
        1
  •  2
  •   Naman Kheterpal    6 年前

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

    网页包开始制作 dependency graph 从中提到的所有文件 entry files 然后所有的文件 imported 在那些文件里然后全部 imports 下一级的。。。。。。。

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

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

    如果你的 scss系统 不是由依赖关系图中的任何文件导入的,则必须将其添加为 new entry file 或者你可以使用IDE的任何插件来监视 scss系统 文件并将其编译为 css 换衣服的时候。