覆盖CRA Webpack配置而不弹出(从媒体文件中删除随机数)

dgiusagp  于 2022-11-13  发布在  Webpack
关注(0)|答案(1)|浏览(148)

我需要从我的项目中的所有pdf文件名中删除生成的随机数。(例如,license.pdf而不是license.3402bc5d.pdf)
我尝试使用react-app-rewired
文件配置覆盖.js

module.exports = function override(config, env) {
  config.module = {
    ...config.module, // copy all settings
    rules: [
      ...config.module.rules,
      {
        oneOf: [
          {
            test:/\.pdf$/,
            loader: 'file-loader',
            options: { name: "static/media/[name].pdf"}
          }
        ]
      },
    ]
  };
  return config;
};

但没有成功

sdnqo3pr

sdnqo3pr1#

解决方案如下:

module.exports = function override(config, env) {
  config.module.rules[1].oneOf = config.module.rules[1].oneOf.map((one) => {
    if (one.options && one.options.name && one.exclude) {
      one.exclude = [/\.(js|mjs|jsx|ts|tsx)$/, /\.html$/, /\.json$/, /\.pdf$/];
    }
    return one;
  }).concat([
    {
      test:/\.pdf$/,
      loader: 'file-loader',
      options: { name: "/docs/[name].[ext]"}
    }
  ]);

  return config;
};

相关问题