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

0% Statements 0/7
0% Branches 0/2
0% Functions 0/1
0% Lines 0/6

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                                                                                                                                                                         
// 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');
 
const disableThreadLoaderOnTravis = (use) => (process.env.TRAVIS ? use.loader !== 'thread-loader' : true);
 
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'],
            },
          },
        ].filter(disableThreadLoaderOnTravis),
      },
      {
        test: /\.scss$/,
        use: [
          { loader: 'style-loader' },
          { loader: 'css-loader' },
          {
            loader: 'sass-loader',
            options: {
              api: 'legacy',
            },
          },
        ],
      },
      {
        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'],
            },
          },
          {
            loader: path.resolve(paths.root, 'scripts/compile/mdx-loader.js'),
          },
        ].filter(disableThreadLoaderOnTravis),
      },
    ],
  },
  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'],
  },
});