簡體   English   中英

如何獲取一堆CSS文件並為所有應用程序制作一個CSS文件

[英]How can I grab bunch of scss files and make one css file for all application

我有webpack.config,不知道我需要在其中放置什么模塊,因為我找到了模塊,因此只能使css或scss文件最小化,而不能收集它們。

所以我有8-9個scss文件,並且需要一個css文件,該文件從中收集所有代碼

 var path = require('path'); module.exports = { entry: { home: './src/main/js/home/home.js', products: './src/main/js/products/products.js', product: './src/main/js/product/product.js', profile: './src/main/js/profile/profile.js', topics: './src/main/js/topics/topics.js', topic: './src/main/js/topic/topic.js', }, cache: true, mode: 'development', output: { path: __dirname, filename: './src/main/resources/static/built/[name].bundle.js' }, module: { rules: [ { test: path.join(__dirname, '.'), exclude: /(node_modules)/, use: [{ loader: 'babel-loader', options: { presets: ["@babel/preset-env", "@babel/preset-react"] } }] } ] } }; 

我應該安裝什么模塊,以及需要在webpack.config中放置代碼的位置。 請幫助,我從未使用過webpack!

 var path = require('path'); const ExtractTextPlugin = require("extract-text-webpack-plugin"); module.exports = { entry: { home: './src/main/js/home/home.js', products: './src/main/js/products/products.js', product: './src/main/js/product/product.js', profile: './src/main/js/profile/profile.js', topics: './src/main/js/topics/topics.js', topic: './src/main/js/topic/topic.js', _article: './src/main/resources/static/sass/_article.scss', _catalog: './src/main/resources/static/sass/_catalog.scss', _home: './src/main/resources/static/sass/_home.scss', _header: './src/main/resources/static/sass/_header.scss', _footer: './src/main/resources/static/sass/_footer.scss', }, cache: true, mode: 'development', output: { path: __dirname, filename: './src/main/resources/static/built/[name].bundle.js' }, module: { rules: [ { test: [ /\\.scss$/, path.join(__dirname, '.')], exclude: /(node_modules)/, use: ExtractTextPlugin.extract({ fallback: "style-loader", use: ['css-loader', 'sass-loader'] })[{ loader: 'babel-loader', options: { presets: ["@babel/preset-env", "@babel/preset-react"] } }] } ] }, plugins: [ new ExtractTextPlugin("styles.css"), ] }; 

那就是我的webpack.config

webpack的工作原理與gulp不同。 Gulp是一個任務運行程序,可以使用globs和文件模式。 Webpack是一個捆綁程序,它根據給定的入口點來分析依賴關系樹,以便能夠創建捆綁程序。

為了使用webpack並捆綁所有scss文件,需要從入口點將其導入。 這是webpack知道這些文件存在的唯一方法。

編輯:正確的配置。

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

module.exports = {
    entry: {
        home: './src/main/js/home/home.js',
        products: './src/main/js/products/products.js',
        product: './src/main/js/product/product.js',
        profile: './src/main/js/profile/profile.js',
        topics: './src/main/js/topics/topics.js',
        topic: './src/main/js/topic/topic.js',
        _article: './src/main/resources/static/sass/_article.scss',
        _catalog: './src/main/resources/static/sass/_catalog.scss',
        _home: './src/main/resources/static/sass/_home.scss',
        _header: './src/main/resources/static/sass/_header.scss',
        _footer: './src/main/resources/static/sass/_footer.scss',

    },
    cache: true,
    mode: 'development',
    output: {
        path: __dirname,
        filename: './src/main/resources/static/built/[name].bundle.js'
    },
    module: {
        rules: [
            {
                test: /\.scss$/,
                use: [
                    MiniCssExtractPlugin.loader,
                    'css-loader',
                    'sass-loader'
                ]
            },
            {
                test: /\.js$/,
                exclude: /(node_modules)/,
                use: {
                    loader: 'babel-loader',
                    options: {
                        presets: ["@babel/preset-env", "@babel/preset-react"]
                    }
                }
            }
        ]
    },
    plugins: [
        new MiniCssExtractPlugin()
    ]
};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM