Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Webpack 4将less和sass文件捆绑到单个scss文件中_Webpack_Sass_Less - Fatal编程技术网

使用Webpack 4将less和sass文件捆绑到单个scss文件中

使用Webpack 4将less和sass文件捆绑到单个scss文件中,webpack,sass,less,Webpack,Sass,Less,我开发了一个用于其他项目的组件库,我使用了使用较少的Ant Design库,我在我的组件项目中使用了Sass,我试图将所有的less和Sass文件捆绑到一个单独的Sass文件中,但是我在Sass中有一些变量,我想在其他项目中使用,所以我不想在scss中转换最终的文件 我已经试过使用,但我注意到webpack总是用css转换我的文件 这是我的网页配置: const path = require('path'); const CleanWebpackPlugin = require('clean-w

我开发了一个用于其他项目的组件库,我使用了使用较少的Ant Design库,我在我的组件项目中使用了Sass,我试图将所有的less和Sass文件捆绑到一个单独的Sass文件中,但是我在Sass中有一些变量,我想在其他项目中使用,所以我不想在scss中转换最终的文件

我已经试过使用,但我注意到webpack总是用css转换我的文件

这是我的网页配置:

const path = require('path');
const CleanWebpackPlugin = require('clean-webpack-plugin');
const nodeExternals = require('webpack-node-externals');
const ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');

module.exports = {
    mode: 'development',
    entry: [path.join(__dirname, 'src/index.tsx')],
    externals: [nodeExternals()],
    module: {
        rules: [
            {
                test: /\.tsx?/,
                use: [
                    'babel-loader',
                    {
                        loader: 'ts-loader',
                        options: {
                            // disable type checker - we will use it in fork plugin
                            transpileOnly: true
                        }
                    }
                ]
            },
            {
                test: /.svg$/,
                use: [
                    {
                        loader: '@svgr/webpack',
                        options: {
                            icon: true,
                            svgo: true,
                            replaceAttrValues: {
                                '#5E5854': 'currentColor'
                            }
                        }
                    }
                ]
            },
            {
                test: /\.(scss|sass|css)$/,
                use: [
                    MiniCssExtractPlugin.loader,
                    { loader: 'css-loader', options: { url: false, sourceMap: true } },
                    {
                        loader: 'sass-loader',
                        options: { sourceMap: true }
                    }
                ]
            },
            {
                test: /\.(less)$/,
                use: [
                    MiniCssExtractPlugin.loader,
                    { loader: 'css-loader', options: { url: false, sourceMap: true } },
                    { loader: 'less-loader', options: { sourceMap: true, javascriptEnabled: true, modifyVars: require('./src/theme/override/vars') } }
                ]
            },
            {
                test: /\.(woff(2)?|ttf|eot)$/,
                include: path.resolve(__dirname, '../src/theme/fonts'),
                use: [
                    {
                        loader: 'file-loader',
                        options: {
                            name: '[name].[ext]',
                            outputPath: 'fonts/'
                        }
                    }
                ]
            },
            {
                test: /\.png$/,
                include: path.resolve(__dirname, '../src/theme/assets'),
                use: [
                    {
                        loader: 'file-loader',
                        options: {
                            name: '[name].[ext]',
                            outputPath: 'assets/'
                        }
                    }
                ]
            }
        ]
    },
    resolve: {
        extensions: ['.js', '.ts', '.tsx'],
        alias: {
            '@root': path.join(__dirname, 'src')
        }
    },
    output: {
        path: path.resolve(__dirname, './lib'),
        filename: 'index.js',
        libraryTarget: 'commonjs2'
    },
    plugins: [
        new CleanWebpackPlugin(),
        new ForkTsCheckerWebpackPlugin({
            useTypescriptIncrementalApi: true,
            tslint: true
        }),
        new MiniCssExtractPlugin({
            filename: 'styles2.css',
            chunkFilename: '[id].css'
        })
    ]
};