首页 > 解决方案 > 网页包。具有相似测试掩码的不同入口点的不同规则

问题描述

我们有一个包含 old-good-smarty-part 和 react-part 的项目。

我们将 react-part 文件与 webpack 捆绑在一起。

我们也想将 non-react-part 文件与 webpack 捆绑在一起,但是这些文件在项目树中比 webpack 有点高。这里有一个问题:我们需要将它们捆绑起来并将结果放到祖父目录中......那么,如何拆分这个入口点的规则?

const ExtractJS = new ExtractTextPlugin({
  filename: "../../[name].min.js"
});

module.exports = {
  entry: {
    reactApp: ["./src/entries/reactApp/index.tsx"],
    // JS -- we need to place it "upper" than webpack directory in project
    "scripts/oldStuff": ["./src/entries/oldStuff/index.js"]
  },
  module: {
    rules: [
      {
        test: /\.js?$/,
        loader: "babel-loader",
        exclude: /node_modules/,
        options: {
          cacheDirectory: true,
          presets: [["es2015", { modules: false }], "stage-2", "react"],
          plugins: ["transform-node-env-inline"],
          env: {
            development: {
              plugins: ["react-hot-loader/babel"]
            },
            targets: {
              browsers: ["last 2 versions", "ie >= 10"]
            }
          }
        }
      },
      {
        test: /\.js?$/,
        include: [/(.*?)scripts(.*?)/, /(.*?)lib(.*?)/],
        use: ExtractJS.extract({
          use: {
            loader: "raw-loader"
          }
        })
      }
    }
  }
}

试图用includeexclude选项解决这个问题,但这看起来不太好——我们得到了“交叉输入”文件(类似于/lib/foo/bar.js反应部分和/lib/foo/boar.js非反应部分)及其大约 15-20 个文件......

这是一个主要问题:是否可以排除一个规则的入口点并包含另一个规则(其他入口点除外)?

标签: javascriptwebpackbundle

解决方案


推荐阅读