Определение пути к файлам scss

Используя sass-loader, я смог скомпилировать scss, как и ожидалось, добавив еще одну точку входа, как показано ниже.

entry: ['./src/assets/scripts/main.js', './src/assets/styles/_main.scss'],

Однако я подумал, что смогу определить путь к моим исходным файлам, используя опцию sass-loader includePaths, как показано ниже.

const path = require('path');

options: {includePaths: ['path.resolve(__dirname, "src/assets/styles")']}

Это не похоже на работу. Я неправильно понимаю это? Кроме того, есть ли недостаток для добавления группы точек входа в массив, как я сделал. Благодарю.

ОБНОВЛЕНО

const path = require('path');
const ExtractTextPlugin = require('extract-text-webpack-plugin');

const config = {
    entry: './src/assets/scripts/main.js',
    output: {
        path: path.resolve(__dirname, 'dist/scripts'),
        filename: 'main.js'
    },
    module: {
        rules: [
          {
            test: /\.scss$/,
            //include: [ path.resolve(__dirname, 'src/assets/styles') ],
            use: ExtractTextPlugin.extract({
            //fallback: 'style',
                        use: [{
                          loader: 'css-loader', // translates CSS into CommonJS modules
                        },  {
                          loader: 'sass-loader', // compiles Sass to CSS
                                        options: {
                       includePaths: [path.resolve(__dirname, "src/assets/styles")]
                }
                        }]

                })
          }
        ]
    },

    plugins: [  
        new ExtractTextPlugin('styles.css')
    ]
};

module.exports = config;

1 ответ

Решение

Вы правильно понимаете, includePaths указывает каталоги, из которых вы можете @import файлы scss.

Я полагаю, вы должны удалить кавычки в вашей конфигурации:

options: {includePaths: [path.resolve(__dirname, "src/assets/styles")]}
Другие вопросы по тегам