Webpack 在 SCSS @import SCSS 上抛出错误

Ric*_*ich 5 css sass webpack webpack-2

我正在尝试将多个 SCSS 文件处理为 Webpack (3.6.0) 中的单个外部 CSS 文件,除非我在解析 @import 语句时遇到问题。

条目 index.js 包含:

import './styles/main.scss';
Run Code Online (Sandbox Code Playgroud)

进入 SCSS:

@import 'reset.scss';
@import 'global.scss';
@import 'fonts.scss';
@import 'system.scss';
Run Code Online (Sandbox Code Playgroud)

当前的网络包:

const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const CleanWebpackPlugin = require('clean-webpack-plugin');
const CopyWebpackPlugin = require('copy-webpack-plugin');

module.exports = {
    entry: {
        app: './src/index.js'
    },
    context: path.resolve(__dirname),

    output: {
        path: path.resolve(__dirname, 'public'),
        filename: 'bundle.js',
    },

    plugins: [
        new CleanWebpackPlugin(['app']),
        new HtmlWebpackPlugin({
            title: 'Minimum-Viable',
            filename: 'index.html',
            template: './public/index.html',
        }),
    ],

    module: {
        rules: [
            {
                test: /\.js$/,
                exclude: /node_modules/,
                use: {
                    loader: 'babel-loader',
                    options: {
                        presets: [
                            'es2015',
                            'react',
                        ],
                        plugins: ['transform-class-properties'],
                    },
                },
            },
            {
                test: /\.scss$/,
                include: [
                    path.resolve(__dirname, 'styles')
                ],
                use: [
                    {loader:'style-loader'},
                    {loader:'css-loader'},
                    {loader:'sass-loader'}
                ]
            },
        ],
    },
    resolve: {
        extensions: ['.js','.scss']
    }
};
Run Code Online (Sandbox Code Playgroud)

抛出的错误是:

./src/styles/main.scss 模块中的错误解析失败:意外字符“@”(1:0)

您可能需要一个合适的加载器来处理这种文件类型。| @import 'reset.scss';

任何指点,感激地收到。

cow*_*azy 5

我设法重现了错误,它似乎来自:

include: [
    path.resolve(__dirname, 'styles')
],
Run Code Online (Sandbox Code Playgroud)

路径是事业,为装载机的搜索问题/styles./styles,但看你的入口点:

entry: {
    app: './src/index.js'
},
Run Code Online (Sandbox Code Playgroud)

其实应该是./src/styles这样的:

include: [
    path.resolve(__dirname, 'src', 'styles')
],
Run Code Online (Sandbox Code Playgroud)