Nous avons rencontré le même problème lors de la mise à jour d'un projet ancien dépendant de gulp@3.9.1
à Node.js 12+.
Ces corrections vous permettent d'utiliser Node.js 12+ avec gulp@3.9.1
en passant outre graceful-fs
à la version ^4.2.4
.
Si vous utilisez le fil v1
Fil v1 supporte la résolution d'un paquet vers une version définie . Vous devez ajouter un resolutions
à votre package.json
:
{
// Your current package.json contents
"resolutions": {
"graceful-fs": "^4.2.4"
}
}
Merci @jazd pour cette façon de résoudre le problème.
Si vous utilisez npm
Utilisation de npm-force-resolutions
comme un script de préinstallation, vous pouvez obtenir un résultat similaire à celui obtenu avec yarn v1. Vous devez modifier votre package.json de cette façon :
{
// Your current package.json
"scripts": {
// Your current package.json scripts
"preinstall": "npx npm-force-resolutions"
},
"resolutions": {
"graceful-fs": "^4.2.4"
}
}
npm-force-resolutions
modifiera le package-lock.json
pour définir graceful-fs
à la version souhaitée avant le install
est fait.
Si vous utilisez une .npmrc
dans votre projet et qu'il contient un proxy ou un registre personnalisé, vous devrez peut-être modifier les éléments suivants npx npm-force-resolutions
a npx --userconfig .npmrc npm-force-resolutions
parce qu'à partir de maintenant, npx
n'utilise pas le dossier actuel .npmrc
par défaut.
Origine du problème
Cette question découle du fait que gulp@3.9.1
dépend de en graceful-fs@^3.0.0
qui monkeypatches Node.js fs
module.
Cela fonctionnait avec Node.js jusqu'à la version 11.15 (qui est une version plus récente). version d'une branche de développement et ne devrait pas être utilisé en production).
graceful-fs@^4.0.0
ne fait pas de monkeypatch Node.js fs
plus, ce qui le rend compatible avec Node.js > 11.15 (testé et fonctionnant avec les versions 12 et 14).
Notez qu'il ne s'agit pas d'une solution pérenne, mais elle est utile lorsque vous n'avez pas le temps d'effectuer une mise à jour de l'application gulp@^4.0.0
.
0 votes
Désinstaller le nœud et le réinstaller en utilisant le lien donné. nodejs.org/fr/download
0 votes
Essayez cette méthode rapide ici thecodemon.com/referenceerror-primordials-is-not-defined