@Romancho

Как разнести стили из одного модуля npm?

Есть свой пакет (company-pack) в локальном npm-репозитории. Внутри него своя сетка на SASS и две версии: desktop.scss и mobile.scss, которые собирают разные стили (это важно).

Способ 1, работает:
entry: {
        desktop: './node_modules/company-pack/scss/desktop.scss',
        mobile: './node_modules/company-pack/scss/mobile.scss'
    },
module: {
    	rules: [
            {
                test: /\.js$/,
                exclude: ['/node_modules/'],
                use: [{
                    loader: 'babel-loader'
                }]
            },
            {
                test: /\.scss$/,
                use: [
                        MiniCssExtractPlugin.loader,
                    {
                        loader: 'css-loader',
                        options: {
                            sourceMap: true
                        }
                    },
                    {
                        loader:'sass-loader',
                        options: {
                            sourceMap: true
                        }
                    }
                ]
            }
        ]

	},
plugins: [
	new FixStyleOnlyEntriesPlugin(),
	new MiniCssExtractPlugin(is_production ? {
            filename: 'css/[name].min.css',
            chunkFilename: 'css/[name].min.css',
            sourceMap: true,
        } : {
            filename: 'css/[name].css',
            chunkFilename: 'css/[name].css',
            sourceMap: false,
        }),

	]

Но в первом способе руками прописываются пути к scss. А хотелось, чтобы вызов был как импорт из main.js
и результатом работы webpack было два файла: desktop.css и mobile.css. На данный момент он собирает всё в один main.css, если в webpack.config.js
entry: {
        main: './main.js,
    },

и main.js
import { CssModules } from 'company-pack';
и в index.js пакета
import Desktop from './scss/desktop.scss';
import Mobile from './scss/mobile.scss';

export default CssModules(Desktop, Mobile);
  • Вопрос задан
  • 30 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы