web-dev-qa-db-fra.com

Vider le cache Webpack

Comment allez-vous forcer webpack à vider son cache?

Je fais beaucoup de travail avec threejs et webpack et pour une raison quelconque, à mon insu, il a deux copies de threejs en mémoire. Voici l'erreur:

enter image description here

Ce fichier ne se trouve pas dans un dossier caché dans le dossier de l'application mais dans la mémoire des webpacks trouvée via les outils de développement Chrome Dev - c'est-à-dire.

enter image description here

Alors, y a-t-il un moyen de forcer le webpack à vider son cache?

8
Katana24

Dans le cas où cela aiderait quelqu'un d'autre, j'avais un cas similaire et le problème était que dans l'un des fichiers, ma déclaration d'importation avait une majuscule dans le nom. Par exemple, j'avais

import {Person} from './model/Model';

Notez que j'avais supprimé le fichier ./model/Model.js mais que j'obtenais toujours l'erreur en raison de l'importation. Modifiez simplement l'importation pour qu'elle soit

import {Person} from './model/model';

et tout va bien à nouveau.

2
Joe.b

Comme l'indique l'avertissement, vous disposez de deux copies de three.js dans les répertoires qui ont le même nom effectif lorsque vous ignorez les majuscules: "trois" vs "TROIS" sont les mêmes.

S'ils sont différents, renommez l'un d'eux. Ou, s'il s'agit du même module, donnez-leur tous les deux un nom identique, en minuscules.

1
John Mee

Webpack n'a pas de mise en cache mais les navigateurs en ont. Les fichiers produits par la compilation Webpack peuvent rester en cache sauf si leur contenu a changé. Sur le documentation ils expliquent que pour résoudre ce problème, vous pouvez ajouter [contenthash] à vos noms de fichiers de sortie.

La substitution [contenthash] ajoutera un hachage unique basé sur le contenu d'un élément. Lorsque le contenu de l'actif change, [contenthash] change également.

module.exports = {
    output: {
        filename: '[name].[contenthash].js',
        path: path.resolve(__dirname, 'dist')
    }
};

PS: j'utilise Webpack v4.30.0

Pour en savoir plus, consultez Guide du Webpack pour la mise en cache .

1
Seyhan