Извлечение css из файла scss с помощью веб-пакета

Я пытаюсь использовать webpack с моим основным проектом asp.net mvc. Я могу связывать файлы JS. Но я не могу извлечь мои CSS из файлов Scss.

var path = require('path');
var extractTextPlugin = require("extract-text-webpack-plugin");
var cleanWebpackPlugin = require('clean-webpack-plugin');

module.exports = {
    entry: {
        'role/role': './scripts/role/roleVM.ts',
        main: './scripts/main.ts',
        vendor: ["jquery"],
    },
    output: {
        filename: '[name].js',
        path: path.resolve(__dirname, 'wwwroot/dist/js/')
    },
    module: {
        rules: [
            {
                test: /\.tsx?$/,
                loader: 'ts-loader',
                exclude: /node_modules/,
            },
            {
                test: /\.scss$/,
                use: extractTextPlugin.extract({
                    use: [{
                        loader: "css-loader", options: {
                            sourceMap: true
                        }
                    }, {
                        loader: "sass-loader", options: {
                            sourceMap: true
                        }
                    }],
                    fallback: 'style-loader'
                }),
                exclude: /node_modules/,
            },
        ]
    },
    plugins: [
        new cleanWebpackPlugin(['dist'], {
            root: path.resolve(__dirname, 'wwwroot'),
            verbose: true,
            dry: false
        }),
        new extractTextPlugin("./css/main.css")
    ],
    resolve: {
        extensions: [".tsx", ".ts", ".js", '.scss']
    }
};

когда я строю свой проект, CSS-файлы не создаются

моя команда:

npm run build --color=always
> [email protected] build C:\project\src\test
> webpack
clean-webpack-plugin: C:\project\src\project\wwwroot\dist has been removed.
ts-loader: Using [email protected] and C:\project\src\project\tsconfig.json
Hash: 2cdaff8d8177eedec094
Version: webpack 3.5.3
Time: 2203ms
       Asset     Size  Chunks                    Chunk Names
role/role.js   293 kB       0  [emitted]  [big]  role/role
   vendor.js   271 kB       1  [emitted]  [big]  vendor
     main.js  2.48 kB       2  [emitted]         main
   [0] ./scripts/role/roleVM.ts 400 bytes {0} [built]
   [2] ./scripts/main.ts 0 bytes {2} [built]
   [3] multi jquery 28 bytes {1} [built]

похоже, он пропускает пропущенный текстовый плагин.

Что-то отсутствует в моем файле конфигурации?

моя текущая структура проекта:

└── Project
    ├── wwwroot
    │   └── scss
    │     └── main.scss
    └── scripts
    │   └── main.ts
    │
    └── webpack.config.js

1 ответ

Решение

Убедитесь, что вы ссылаетесь на файлы стилей где-нибудь (импортируете их в main.ts и т. Д.). В противном случае плагин не будет работать, потому что он не найдет никаких файлов для извлечения.

https://github.com/webpack-contrib/extract-text-webpack-plugin/issues/354

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