如何禁用 webpacker 加载程序?

How to disable a webpacker loader?

Webpacker 需要以下加载程序:

babel-loader
css-loader
file-loader
postcss-loader
sass-loader
style-loader

我想尝试跳过部分或全部。有可能吗? webpacker 围绕 webpack 提供的“薄”包装器对我来说有点厚。我很难改变它的配置,甚至不知道它的总配置是什么...

我相信可以通过加载程序数组修改加载程序,如下所示:

// config/webpack/environment.js
const { environment } = require('@rails/webpacker')
environment.loaders.delete('babel')
module.exports = environment

您还可以插入新的加载器或修改现有加载器的选项。

https://github.com/rails/webpacker/blob/master/docs/webpack.md#loaders

一小段代码 environment.toWebpackConfig() 将 return 一个大的 webpack 配置对象。该结构的一部分看起来像

{"loaders": [
  {"key": "babel", "value": {...}},
  ...
]}

所以你可以做类似的事情

var webpack_config = environment.toWebpackConfig();
webpack_config.loaders = webpack_config.loaders.filter(function(loader) {
  return loader.key !== "babel";
});
module.exports = webpack_config;

选择性地过滤掉不需要的加载器。