text: const {join, resolve} = require('path');
  
  const ringUiWebpackConfig = require('@jetbrains/ring-ui/webpack.config');
  
  const pkgConfig = require('./package.json').config;
  
  const componentsPath = join(__dirname, pkgConfig.components);
  
  // Patch @jetbrains/ring-ui svg-sprite-loader config
  ringUiWebpackConfig.loaders.svgInlineLoader.include.push(
    require('@jetbrains/logos'),
    require('@jetbrains/icons')
  );
  
  const webpackConfig = () => ({
    entry: `${componentsPath}/root.tsx`,
    resolve: {
      mainFields: ['module', 'browser', 'main'],
      extensions: ['.tsx', '.ts', '.js', '.svg'],
      alias: {
        react: resolve('./node_modules/react'),
        'react-dom': resolve('./node_modules/react-dom'),
        '@jetbrains/ring-ui': resolve('./node_modules/@jetbrains/ring-ui')
      }
    },
    output: {
      path: resolve(__dirname, pkgConfig.dist),
      filename: '[name].js',
      publicPath: '',
      devtoolModuleFilenameTemplate: '/[absolute-resource-path]'
    },
    module: {
      rules: [
        ...ringUiWebpackConfig.config.module.rules,
        {
          test: /\.s[ac]ss$/i,
          use: [
            'style-loader',
            'css-loader',
            'sass-loader',
          ],
          include: componentsPath,
          exclude: ringUiWebpackConfig.componentsPath,
        },
        {
          test: /\.tsx?$/,
          use: [
            {
              loader: 'ts-loader',
              options: {
                transpileOnly: true
              }
            }
          ]
        }
      ]
    },
    plugins: [],
    output: {
      path: __dirname + '/dist/'
    }
  });
  
  module.exports = webpackConfig;
  