All files / packages/design-system/scripts/compile webpack.config.js

0% Statements 0/5
100% Branches 0/0
100% Functions 0/0
0% Lines 0/5

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89                                                                                                                                                                                 
// Copyright (c) 2015-present, salesforce.com, inc. All rights reserved
// Licensed under BSD 3-Clause - see LICENSE.txt or git.io/sfdc-license
 
const I = require('immutable');
const path = require('path');
const webpack = require('webpack');
 
const paths = require('../helpers/paths');
 
module.exports = I.fromJS({
  mode: 'production',
  module: {
    rules: [
      {
        test: /\.jsx?$/,
        use: [
          {
            loader: 'thread-loader',
            options: {
              workerNodeArgs: ['--max-old-space-size=1024'],
            },
          },
          {
            loader: 'babel-loader',
            options: {
              babelrc: false,
              presets: ['@babel/preset-env', ['@babel/preset-react', { runtime: 'classic' }]],
            },
          },
        ],
      },
      {
        test: /\.scss$/,
        use: [
          { loader: 'style-loader' },
          { loader: 'css-loader' },
          {
            loader: 'sass-loader',
            options: {
              // sass-loader v17 removed the `legacy` API; `modern` is the
              // default. The modern API needs load paths declared explicitly
              // (legacy implicitly searched CWD/node_modules).
              api: 'modern',
              sassOptions: {
                loadPaths: [paths.root, paths.ui, paths.node_modules],
              },
            },
          },
        ],
      },
      {
        test: /\.mdx$/,
        use: [
          {
            loader: 'thread-loader',
            options: {
              workerNodeArgs: ['--max-old-space-size=1024'],
            },
          },
          {
            loader: 'babel-loader',
            options: {
              babelrc: false,
              presets: ['@babel/preset-env', ['@babel/preset-react', { runtime: 'classic' }]],
            },
          },
          {
            loader: path.resolve(paths.root, 'scripts/compile/mdx-loader.js'),
          },
        ],
      },
    ],
  },
  optimization: {},
  output: {
    globalObject: 'this',
    path: paths.dist,
    publicPath: '/assets/scripts/bundle/',
  },
  plugins: [
    new webpack.optimize.LimitChunkCountPlugin({
      maxChunks: 1, // Ensures only one chunk is generated
    }),
  ],
  resolve: {
    extensions: ['.js', '.jsx'],
  },
});