Est-il possible de retirer des caractères spéciaux des noms de fichiers dans un webpack?

Long histoire courte, je ne peux pas avoir certains personnages comme des traits d'union dans nos noms d'actifs. Je n'ai pas le bonheur d'analyser la documentation sur le Webpack pour savoir s'il est possible de renommer un fichier en utilisant un regex ou quelque chose de similaire afin que je puisse supprimer tous les traits d'union des packages tiers où je ne contrôle pas le nom de fichier source.

Mon exemple super naïf serait quelque chose comme ceci:

{ test: /\.(ttf|eot|woff|woff2)$/, loader: `url-loader?limit=${ASSETS_LIMIT}&name=fonts/[name.replace(/-/)].[ext]` } 

Est-ce que quelqu'un sait si cela est possible ou comment aborder cette exigence? Merci!

La réponse à cette énigme semble être trouvée dans l'option de chargeur customInterpolateName . Avec [email protected] ci-dessous était mon résultat final pour supprimer un trait d'union.

C'était la touche principale:

 plugins: [ // ... other plugins ... new webpack.LoaderOptionsPlugin({ options: { customInterpolateName: (loaderContext) => { return loaderContext.replace(/-/g, ''); } } }) ] 

Voici un exemple plus complet pour donner un certain contexte (note: les .css été ajoutés intentionnellement aux noms de fichiers de la police comme solution de contournement pour une autre restriction de nom de ressource Web dans Dynamics CRM):

 module.exports = { // ... other config ... module: { loaders: [ // ... other loaders ... { test: /\.(ttf|eot|woff|woff2)$/, loader: `url-loader?limit=${ASSETS_LIMIT}&name=fonts/[name].[ext].css` } ] }, plugins: [ // ... other plugins ... new webpack.LoaderOptionsPlugin({ options: { customInterpolateName: (loaderContext) => { return loaderContext.replace(/-/g, ''); } } }) ] };