在不弹出的情况下覆盖 CRA webpack 配置(从媒体文件中删除随机数)
Override CRA webpack config without ejecting (remove random numbers from media files)
我需要从项目中的所有 pdf 文件名中删除生成的随机数。 (例如 license.pdf 而不是许可证。3402bc5d.pdf)
我尝试使用 react-app-rewired。
文件配置-overrides.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;
};
但是没用
解决方法如下:
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;
};
我需要从项目中的所有 pdf 文件名中删除生成的随机数。 (例如 license.pdf 而不是许可证。3402bc5d.pdf)
我尝试使用 react-app-rewired。
文件配置-overrides.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;
};
但是没用
解决方法如下:
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;
};