Webpack 3从bundle中排除目录的正确方法

时间:2017-06-28 07:33:57

标签: webpack

我正在寻找从webpack包中排除特定文件夹的正确方法。

我的配置如下:

const path = require('path');

const config = {
  entry: [
    './client',
  ],
  output: {
    path: path.resolve(__dirname, 'dist'),
    filename: 'bundle.js',
  },
  devtool: 'source-map',
  resolve: {
    extensions: ['.js', '.jsx'],
  },
  module: {
    rules: [
      {
        test: /./,
        exclude: /src/,
      },
    ],
  },
  plugins: [],
};
module.exports = config;

根据我的理解,这个配置应该排除/ src /目录,而是webpack继续从这个目录向bundle添加文件,因为测试将匹配 any 并且exclude会影响src中的任何一个目录。或者我错过了什么?

1 个答案:

答案 0 :(得分:1)

这就是我解决它的方式(如果其他人有同样的问题)

使用此代码,我从bundle中排除所有位于/ src / server / *

中的文件
  externals: [
    function excludeDir(context, request, callback) {
      if (/.src\/server./.test(path.resolve(context, request))) {
        return callback(null, 'commonjs');
      }
      return callback();
    },
  ],