Как предварительно обработать и правильно включить scss в угловой компонент + веб-пакет - PullRequest
0 голосов
/ 30 апреля 2018

Я настраиваю веб-пакет для создания своего углового приложения. Теперь я застрял, как предварительно обработать scss и включить его в угловой компонент.

В компоненте я ссылаюсь на scss напрямую.

enter image description here

В веб-пакете у меня есть загрузчики для scss и css.

enter image description here

Выход Webpack встраивается в папку dist. Но в dev-tools я вижу, что он пытается напрямую включить этот файл app.component.scss

enter image description here

Не могли бы вы помочь мне продвинуться в решении этой проблемы? Что я делаю неправильно? Спасибо за любую подсказку.

1 Ответ

0 голосов
/ 30 апреля 2018

Вот мой webpack.config.js. Работает нормально

module: {
        rules: [
            { test: /\.ts$/, use: isDevBuild ? ['awesome-typescript-loader?silent=true', 'angular2-template-loader', 'angular2-router-loader'] : '@ngtools/webpack' },
            { test: /\.html$/, use: 'html-loader?minimize=false' },
            {
                test: /\.scss$/,
                use: [
                    {
                        loader: "to-string-loader"
                    },
                    {
                        loader: "style-loader" // creates style nodes from JS strings
                    }, {
                        loader: "css-loader" // translates CSS into CommonJS
                    }, {
                        loader: "sass-loader" // compiles Sass to CSS
                    }]
            },
            {
                test: /\.(png|jpg|jpeg|woff|eot|ttf|svg)$/,
                use: [
                    {
                        loader: 'url-loader',
                        options: {
                            limit: 105000, // if less than 10 kb, add base64 encoded image to css
                            name: "assets/[hash].[ext]" // if more than 10 kb move to this folder in build using file-loader
                        }
                    }]
            }, {
                test: /\.js$/,
                use: {
                    loader: 'babel-loader',
                    options: {
                        presets: ['env', 'react-app']
                    }
                }
            },
            {
                test: /\.tsx?$/, use: [
                    {
                        loader: "awesome-typescript-loader"
                    }]
            },
        ]
    },

Я только что включил свой CSS в мой корневой компонент

@Component({
    selector: 'app',
    templateUrl: './app.component.html',
    styleUrls: ['./../styles/app.scss']
})

Работает, как и ожидалось. Попробуйте и дайте мне знать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...