仅为特定入口捆绑包应用webpack加载器

4

能否仅为打包在特定入口包中的模块应用特定的加载器?

我的 webpack.config.js

module.exports = {
  entry: {
    bundle: path.resolve(cwd, 'src', 'index.ts'),
    tests =[...glob.sync('**/*.spec.ts')],
    polyfills: ['polyfill1', 'polyfill2'],
  },
  output: {
    library: pkg.name,
    libraryTarget: 'umd',
    filename: '[name].js',
    umdNamedDefine: true,
    path: path.resolve(cwd, 'build'),
  },
  resolve: {
    extensions: ['.ts', '.tsx', '.js', 'mjs']
  },
  module: {
    rules: [{
      test: /\.(t|j)s/, // this loader should only be used for every file that is bundled in entrypoint 'tests'
      loader: 'babel-loader',
      options: {
        ...options
      }
    },
    {
      test: /\.(t|j)s/, // this loader should only be used for every file that is bundled in entrypoint 'bundle'
      loader: 'babel-loader',
      options: {
        ...options
      }
    }
    ]
  }
}

我希望只针对特定入口包中的文件运行特定加载器,在webpack文档中我没有找到如何查询文件所在的包名称的线索,我只能访问文件的文件名。

1个回答

0

看起来你可以在入口点中使用内联加载器语法来使其工作(在Webpack 4.42.1中测试过)

以下的webpack.config.js将会对script_raw入口点应用raw-loader,但不会对script_plain入口点应用。

var path = require('path');

module.exports = {
  mode: 'development',
  entry: {
      'script_raw': 'raw-loader!./script.js',
      'script_plain': './script.js',
  },
  output: {
    path: '/app/out',
    filename: '[name].js'
  }
};

您可以使用查询字符串(?name=value)语法传递不同的选项


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接