CSS-загрузчик Webpack-4: неизвестное слово в module.export

Я новичок в Webpack и пытаюсь реализовать его для старого сайта. Независимо от того, сколько решений я пробую, я всегда получаю ошибку "Неизвестное слово" при сборке с использованием sass / raw / css / loaders. Похоже, ошибка возникает в файле module.export, который, я полагаю, добавлен в результате импорта таблицы стилей в файл.js. Вот мой webpack.config.js:

module: {
rules: [
    {
        test: /\.js$/,
        exclude: /node_modules/,
        use: {
            loader: "babel-loader",
            options: { presets: ["env"] }
        }
    },
    { // sass / scss loader for webpack
        test: /\.(sass|scss)$/,
        use: [
            'css-loader',
            'raw-loader',
            'sass-loader'
        ],
        exclude: /node_modules/
    },
    {
        test: /\.(png|jpg|gif|svg)$/,
        use: [ 'file-loader' ]
    }
]

}

В index.js:

`import '../css/global.scss';`

Файл global.scss состоит из списка операторов @import.

Вот ошибка, которую я получаю:

ERROR in ./css/analytics/global.scss
Module build failed: Unknown word (1:1)

> 1 | module.exports = ".custom {\n (...)

Кажется, что независимо от того, что находится в файле global.scss, добавленный "module.exports", кажется, нарушает сборку.

Я перепробовал много предложений в интернете, но ни одно из них не сработало.

Заранее спасибо!

1 ответ

Я понял, что я делаю не так. Необработанный загрузчик не был подходящим загрузчиком для этой ситуации, хотя он "выглядел" так, как будто решил проблему с разрешением URL. Я заменил его на resol-url-loader, а также на несколько дополнительных настроек. Вот результат:

    module: {
    rules: [
        {
            test: /\.js$/,
            use: {
                loader: "babel-loader",
                options: { presets: ["env"] }
            }
        },
        { // sass / scss loader for webpack
            test: /\.(sass|scss)$/,
            use: [
                'style-loader',
                'css-loader',
                'resolve-url-loader',
                'sass-loader?sourceMap'
            ],
        },
        {
            test: /\.(jpg|png|gif)$/,
            use: {
                loader: "file-loader",
                options: {
                    name: "[path][name].[hash].[ext]",
                },
            },
        },
        {
            test: /\.svg$/,
            use: "file-loader",
        },
        {
            test: /\.(woff(2)?|ttf|eot|svg)(\?v=\d+\.\d+\.\d+)?$/,
            use: [{
                loader: 'file-loader',
                options: {
                    name: '[name].[ext]',
                    outputPath: PATH_CONFIGS.global_path + '/fonts'
                }
            }]
        }
    ]

Поэтому я предполагаю, что ошибка "неизвестное слово" является несколько общим ответом, который может указывать на многие возможные проблемы. Надеюсь, что это помогает кому-то, кто находится в подобной ситуации.

Другие вопросы по тегам