@webpack_ru
Webpack — русскоговорящее сообщество

Обсуждения webpack, лоадеров, плагинов и сборок Правила: http://bit.ly/our_etiquette См. также: @rollup_ru, @react_js, @vscode_ru, @macos_ru, @js_ru

974 members

Архив канала @webpack_ru 6 января 2018 г.

04:07:16 ДП
User 134905826
User 55943427
Всем привет. Такой вопрос. У меня мультиязычный мультидоменный сайт на реакте, с чуть разными темами под домены (в рамках цветов). Тема регулируется в жс-файлике конфига. Используется css modules. Как-то можно в сцсс импортить путь из конфига? То есть передавать переменную из жса в сцсс.
loader: 'sass-loader',
options: {  data: $NODE_ENV: '${NODE_ENV}'; }
09:36:08 ПП
User 246402278
Привет
09:42:21 ПП
User 246402278
Ребят, осваиваю вебпак и нужна ваша помощь.

const path = require('path');
const webpack = require('webpack');

module.exports = {
    context: path.resolve(__dirname, './src'),
    entry: {
        common: './js/common.js'
    },
    output: {
        path: path.resolve(__dirname, './dist'),
        filename: '[name].bundle.js',
        publicPath: '/dist'
    },
    devServer: {
        contentBase: path.resolve(__dirname, './src')
    },
    plugins: [
      new webpack.ProvidePlugin({
        $: 'jquery',
        jQuery: 'jquery',
        _: 'lodash'
      }),
      new webpack.optimize.CommonsChunkPlugin({
        name: 'vendor',
        minChunks: 2
      })
    ]
};

Цель: выделить jquery(и остальные библиотеки по необходимости) в отдельный бандл.

Что сейчас происходит:

webpack.ProvidePlugin импортирует jquery в модули, которые используют jquery. Эти модули сливаются в общий бандл common.bundle.js. Соответственно, на выходе код Jquery лежит в common.bundle.js.

В этом случае может помочь CommonsChunkPlugin, но только entry всего один - common, поэтому он не работает, поэтому код Jquery так и остается лежать в common.bundle.js.

Есть какой-нибудь путь для достижения поставленной цели? Возможно есть что-то вроде CommonsChunkPlugin, только который ищет многоразовое использование модулей внутри модулей, а не entry?