J'ai installé des modules de noeud par npm install, puis j'ai essayé de faire gulp sass-watch dans l'invite de commande. Après cela, j'ai reçu la réponse ci-dessous.
[18:18:32] Requiring external module babel-register
fs.js:27
const { Math, Object, Reflect } = primordials;
^
ReferenceError: primordials is not defined
J'ai essayé avant de gorger sass-watch
npm -g install gulp-cli
J'ai touché la même erreur. Je soupçonne que vous utilisez le nœud 12 et gulp 3. Cette combinaison ne fonctionne pas: https://github.com/gulpjs/gulp/issues/2324
Une solution de contournement précédente de janvier ne fonctionne pas non plus: https://github.com/gulpjs/gulp/issues/2246
Solution: effectuez une mise à niveau vers gulp 4 ou rétrogradez vers un nœud antérieur.
Nous avons rencontré le même problème lors de la mise à jour d'un projet hérité en fonction de [email protected]
Vers Node.js 12.
Ces correctifs vous permettent d'utiliser Node.js 12 avec [email protected]
En remplaçant graceful-fs
Par la version 4.2.3
.
Créez un fichier npm-shrinkwrap.json
contenant ceci:
{
"dependencies": {
"graceful-fs": {
"version": "4.2.3"
}
}
}
Validez ce fichier npm-shrinkwrap.json
. Ensuite, exécutez npm install
Qui mettra à jour le fichier npm-shrinkwrap.json
.
Malheureusement, cette solution ne fonctionne plus si vous npm install
Recommencez. Voir les autres solutions ci-dessous.
Yarn v1 prend en charge la résolution d'un package dans une version définie . Vous devez ajouter une section resolutions
à votre package.json
:
{
// Your current package.json contents
"resolutions": {
"graceful-fs": "4.2.3"
}
}
Merci @ jazd pour cette façon de résoudre le problème.
En utilisant npm-force-resolutions
comme script de préinstallation, vous pouvez obtenir un résultat similaire à celui de 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.3"
}
}
npm-force-resolutions
Modifiera le fichier package-lock.json
Pour définir graceful-fs
Sur la version souhaitée avant que le install
soit terminé.
Si vous utilisez un fichier .npmrc
Personnalisé dans votre projet et qu'il contient un proxy ou un registre personnalisé, vous devez remplacer npx npm-force-resolutions
Par npx --userconfig .npmrc npm-force-resolutions
Car pour l'instant, npx
n'utilise pas le dossier courant .npmrc
par défaut.
Ce problème provient du fait que [email protected]
dépend de graceful-fs@^3.0.0
Qui monkeypatches Node.js fs
module.
Cela fonctionnait avec Node.js jusqu'à la version 11.15 (qui est un version d'une branche de développement et ne devrait pas être utilisé en production).
graceful-fs@^4.0.0
ne monkeypatch plus le module Node.js fs
, ce qui le rend compatible avec Node.js> 11.15.
Notez que ce n'est pas une solution pérenne mais cela aide lorsque vous n'avez pas le temps de passer à gulp@^4.0.0
.
Utilisez les commandes suivantes et installez noeud v11.15.:
npm install -g n
Sudo n 11.15.0
va résoudre
ReferenceError: les primordiaux ne sont pas définis dans le nœud
Référé de @Terje Norderhaug @Tom Corelis répond.
Utilisez les commandes suivantes pour installer node v11.15.0
et gulp v3.9.1
:
npm install -g n
Sudo n 11.15.0
npm install gulp@^3.9.1
npm install
npm rebuild node-sass
Résoudra ce problème:
ReferenceError: primordials is not defined in node
En utilisant NVM pour gérer la version de nœud que vous utilisez, l'exécution des commandes suivantes a fonctionné pour moi:
$ cd /to/your/project/
$ nvm install lts/dubnium
$ nvm use lts/dubnium
$ yarn upgrade # or `npm install`
a eu la même erreur et a finalement corrigé cela lors de la mise à jour de tous les packages, puis a mentionné la même version du moteur de noeud et la version npm dans package.json
comme c'est le cas dans mon système de travail local.
"engines": {
"node": "10.15.3",
"npm": "6.9.0"
}
j'obtenais cette erreur lors du déploiement sur Heroku.
pour plus de contrôle support herok
Gulp 3.9.1 ne fonctionne pas avec Node v12.xx, et si vous passez à Gulp 4.0.2, vous devez changer complètement gulpfile.js avec la nouvelle syntaxe (Series & Parallels) . Donc, votre meilleur pari est de revenir à Node V 11.xx, le 11.15.0 a bien fonctionné pour moi. En utilisant simplement le code suivant dans le terminal:
nvm install 11.15.0
nvm use 11.15.0 #just in case it didn't automatically select the 11.15.0 as the main node.
nvm uninstall 13.1.0
npm rebuild node-sass
À votre santé!
La rétrogradation vers le nœud stable a résolu ce problème pour moi, car il s'est produit après la mise à niveau vers le nœud 12
Sudo n 10.16.0
J'obtenais cette erreur sur Windows 10. Il s'est avéré être un profil d'itinérance corrompu.
npm ERR! node v12.4.0
npm ERR! npm v3.3.12
npm ERR! primordials is not defined
npm ERR!
npm ERR! If you need help, you may report this error at:
npm ERR! <https://github.com/npm/npm/issues>
npm ERR! Please include the following file with any support request:
Suppression du C:\Users\{user}\AppData\Roaming\npm
le dossier a résolu mon problème.
Gulp pose problème avec Nodejs version 11 et supérieure. Désinstallez votre version actuelle du nœud et réinstallez la v10.15.1 ici est le lien pour cette version. Cela m'aide et résoudra également votre problème.
Cela est peut-être arrivé en retard, mais pour ceux qui souhaitent toujours conserver leur Node v12 lors de l'utilisation de la dernière version de gulp ^ 4.0, procédez comme suit:
Mettez à jour l'interface de ligne de commande (juste par précaution) en utilisant:
npm i gulp-cli -g
Ajoutez/mettez à jour le gulp
sous la section des dépendances de votre package.json
"dependencies": {
"gulp": "^4.0.0"
}
Supprimez votre fichier package-lock.json
Supprimez votre dossier node_modules
Enfin, exécutez npm i
Pour mettre à niveau et recréer le tout nouveau dossier node_modules et le fichier package-lock.json avec les paramètres corrects pour Gulp ^ 4.0
npm i
Remarque Gulp.js 4.0 présente les méthodes series()
et parallel()
pour combiner les tâches au lieu des méthodes de tableau utilisées dans Gulp 3, et donc vous pouvez ou non rencontrer une erreur dans votre ancien script gulpfile.js
.
Pour en savoir plus sur l'application de ces nouvelles fonctionnalités, cela site a vraiment rendu justice à cela: https://www.sitepoint.com/how-to-migrate-to-gulp-4 /
( Si cela aide, veuillez laisser un coup de poing )
Gulp 3.*
ne fonctionne pas sur Node 12.*
ou au-dessus. Vous devez rétrograder Node ou mettre à niveau Gulp.
Si vous manquez de temps, rétrogradez Node vers v11. * Ou ci-dessous; si vous avez besoin de fonctionnalités plus récentes et avez le temps de corriger éventuellement une charge de dépendances brisées, mettez à niveau Gulp vers 4. * ou au dessus!
Comme d'autres l'ont déjà mentionné, Gulp 3.*
n'est pas pris en charge sur Node 12
ou supérieur, vous devrez donc rétrograder votre Node version to 11.*
ou inférieur, OR mettez à niveau votre Gulp vers 4.0
.
La meilleure option dépend en fin de compte du temps dont vous disposez, car la mise à niveau de Gulp apporte des avantages de fichiers gulp plus propres et un contrôle intégré sur l'exécution des tâches série ou parallèle , mais dépend également de la réécriture de votre gulpfile à une nouvelle syntaxe, et pourrait (lire: probablement - voir la fin de ce commentaire) provoque des conflits avec certaines dépendances.
C'est l'option la plus simple et la plus rapide. Surtout si vous utilisez n ou nvm , car ceux-ci vous permettent une installation très rapide et basculez entre les versions Node.
n 10.16.0
nvm install 10.16.0
Une fois que vous avez fait cela, vous mai devez reconstruire vos dépendances npm ou bien supprimez vos node_modules
dossier ET votre package-lock.json
fichier et réinstaller vos dépendances. Cependant, si vous revenez simplement à une version Node Node $ ===) préexistante, cela devrait probablement aller.
Comme mentionné ci-dessus, il s'agit d'une tâche plus longue, mais qui pourrait apporter des avantages à long terme. Par exemple, Node 12
a désormais introduit la prise en charge native des modules ES (derrière un drapeau expérimental) et une prise en charge complète dans Node 13
.
Vous devrez peut-être mettre à niveau Node pour l'utiliser, vous forçant à mettre à niveau Gulp. Ou vous pouvez simplement souhaiter les avantages de l'utilisation de Gulp 4, car il offre un contrôle meilleur et plus efficace sur les tâches d'écriture.
Il existe déjà un certain nombre d'articles à ce sujet, donc je ne développerai pas davantage sur les détails, mais pour réitérer - ce n'est pas un travail rapide . Selon la taille de votre projet, une réécriture importante peut être requise et des dépendances peuvent se briser. Si vous manquez de temps, vous devriez opter pour une simple rétrogradation de Node, au moins temporairement.
Si, comme moi, vous utilisez déjà Gulp 4+ (j'utilisais Gulp 4.0.2
, à l'origine sur Node 10) et récemment mis à niveau (j'ai mis à niveau vers Node 13.8.0
) le problème persiste-t-il, c'est peut-être parce qu'une dépendance s'appuie sur une ancienne version de Gulp, et que cela se trouve dans le pipeline.
Dans mon cas, gulp-combine-mq
était une dépendance utilisant Gulp 3.9.*
. La désactivation de cette tâche dans mon gulpfile a permis à Gulp de s'exécuter à nouveau.
Si cela se produit, vous avez quelques options: vous pouvez,
Inutile de dire que si vous avez plusieurs plugins qui s'appuient sur une ancienne version de Gulp - en particulier si ces plugins sont vitaux pour votre application - c'est là qu'il peut y avoir un énorme temps supplémentaire consacré à la mise à niveau de Gulp (d'où les avertissements ci-dessus).
Si cela se produit, il est préférable de simplement rétrograder le nœud, au moins jusqu'à ce que des correctifs puissent être émis.
J'ai résolu ce problème sur Windows 10 en désinstallant le nœud de Ajouter ou supprimer des programmes -> Node.js
J'ai ensuite installé la version 11.15.0 à partir de https://nodejs.org/download/release/v11.15.0/
Choisissez node-v11.15.0-x64.msi si vous exécutez Windows 64 bits.
Pour ceux qui utilisent yarn
.
yarn global add n
n 11.15.0
yarn install # have to install again
J'utilisais le nœud v12.13.1, j'ai donc rétrogradé à la version 10.19.0 et fonctionne très bien après cela.
Mettez à niveau vers 4.0.1 et assurez-vous de migrer https://fettblog.eu/gulp-4-parallel-and-series/#migration
j'ai le même problème, mais j'ai résolu ce problème. je vous suggère d'abord, assurez-vous d'abord npm install votre pas de problème. puis vous rétrogradez le nœud de version et gulp. j'ai utilisé la version noeud 10.16.1 et gulp 3.9.1. pour rétrograder votre gorgée, vous pouvez écrire
npm install gulp@^3.9.1
En effet, le problème de compatibilité entre node
et gulp
dans votre système. Rétrograder le node
ou mettre à niveau le gulp
résoudra ce problème.
Sudo npm i -g n
Sudo n 11.15.0
Essayez de supprimer le node_modules
dossier et package-lock.json
fichier et réinstallation à l'aide de npm i
commande si elle ne fonctionne toujours pas.
Suivez simplement ces étapes . Je suis sur Windows 10 et cela a parfaitement fonctionné pour moi!
package.json
créer un npm-shrinkwrap.json
fichier avec le contenu suivant: {
"dependencies": {
"graceful-fs": {
"version": "4.2.2"
}
}
}
Courir npm install
, et ne vous inquiétez pas, il mettra à jour npm-shrinkwrap.json
avec un tas de contenu.
Exécutez gulp
pour démarrer le projet.
Êtes-vous confronté à ReferenceError: primordiaux n'est pas défini Erreur lors de la tentative d'exécution de gulp? Vous êtes peut-être sur gulp v3 et node v12, et c'est la source du problème.
Le problème est que gulp v3 ne fonctionne pas (pour l'instant) sous le nœud v12, car cela dépend de graceful-fs@^3.0.0 qui corrige le module fs de Node et ce correctif fonctionnait très bien avant le nœud v12.
Solution pour ReferenceError: les primordiaux ne sont pas définis:
mettre à niveau gulp vers v4. Cette solution résoudra votre erreur.
Pour rétrograder Node vers v11 Pour résoudre cette erreur.
Pour épingler graceful-fs à la version 4.2.2 qui fonctionne sous Node v12 - Cette option expliquée ci-dessous cette option fonctionne pour moi, donc je vous recommande cette option.
ici est un exemple de l'option 3
Si vous essayez d'installer semantic-ui
Et que l'erreur suivante se produit, essayez de télécharger la dernière version de node js(13.5.0)
avec les dernières fonctionnalités, depuis Node.js.org, en plus plutôt que d'essayer NPM installez la sémantique, vous devez simplement ajouter le lien (que vous pouvez trouver à partir de lien cdnjs dans l'en-tête de votre fichier index.html
.
Vous avez deux options ici
J'obtenais également une erreur sur Node 12/13 avec Gulp 3, le déplacement vers Node 11 a fonctionné.
Cette erreur est due à la nouvelle version de Node (12) et une ancienne version de gulp (moins de 4).
Rétrograder Node et autres dépendances n'est pas recommandé. J'ai résolu cela en mettant à jour package.json
fichier récupérant la dernière version de toutes les dépendances. Pour cela, j'utilise npm-check-updates
. C'est un module qui met à jour le package.json
avec la dernière version de toutes les dépendances.
Référence : https://www.npmjs.com/package/npm-check-updates
npm i -g npm-check-updates
ncu -u
npm install
Dans la plupart des cas, nous devrons mettre à jour le gulpfile.js
ainsi que les éléments suivants:
Référence : https://fettblog.eu/gulp-4-parallel-and-series/#migration
Avant:
gulp.task(
'sass', function () {
return gulp.src([sourcePath + '/sass/**/*.scss', "!" + sourcePath + "/sass/**/_*.scss"])
....
}
);
Other config...
gulp.task(
'watch', function () {
gulp.watch(sourcePath + '/sass/**/*.scss', ['sass']);
}
);
Après:
gulp.task('sass', gulp.series(function(done) {
return gulp.src([sourcePath + '/sass/**/*.scss', "!" + sourcePath + "/sass/**/_*.scss"])
...
done();
}));
Other config...
gulp.task(
'watch', function () {
gulp.watch(sourcePath + '/sass/**/*.scss', gulp.series('sass'));
}
);
Comme nous obtenons également cette erreur lorsque nous utilisons le package s3 NPM. Le problème est donc avec le package graceful-fs, nous devons le mettre à jour. Cela fonctionne bien sur 4.2.3.
Il suffit donc de regarder dans quel package NPM il affiche dans les traces de journaux et de mettre à jour le graceful-fs en conséquence à 4.2.3.
Pour toute personne ayant la même erreur pour la même raison dans ADOS CI Build:
Cette question a été la première que j'ai trouvée en cherchant de l'aide. J'ai un pipeline de construction ADOS CI où la première tâche d'installation de l'outil Node.js est utilisée pour installer Node. Ensuite, la tâche npm est utilisée pour installer gulp (npm install -g gulp). Ensuite, la tâche Gulp suivante exécute la tâche par défaut à partir de gulpfile.js. Il y a des trucs stupéfiants dedans.
Lorsque j'ai changé l'outil Node.js pour installer le dernier nœud 12.x au lieu d'un ancien et la dernière version de gulp était 4.0.2. Le résultat a été la même erreur que celle décrite dans la question.
Ce qui a fonctionné pour moi dans ce cas a été de rétrograder node.js vers la dernière version 11.x comme cela a déjà été suggéré par Alphonse R. Dsouza et Aymen Yaseen. Dans ce cas, il n'est pas nécessaire d'utiliser les commandes suggérées, mais définissez plutôt la spécification de version du programme d'installation de l'outil Node.js sur la dernière version Node version de 11.x.
La version exacte de Node.js qui a été installée et fonctionne était 11.15.0. Je n'ai pas eu à déclasser le Gulp.
J'ai rencontré cette erreur après la mise à niveau de mon nœud vers la version 12, qui ne fonctionne pas avec Gulp 3.9.1. En ce qui concerne le fait que mon gulpfile.js n'était pas si complexe, j'ai décidé de passer à Gulp 4 en utilisant cet article , cela s'est bien passé et c'est beaucoup plus facile que je ne le pensais.
J'ai fait face au même problème. Ce que j'ai essayé et travaillé pour moi: - 1). Vérifiez la version de NODE et GULP (la combinaison de nœud v12 et gulp inférieure à v4 ne fonctionne pas) 2). Je rétrograde la version npm par: #Sudo npm install -g n #Sudo n 10.16.0 Cela a bien fonctionné, puis suivez simplement les instructions de votre console
Résolu en rétrogradant la version Node.js de 12.14.0
à 10.18.0
et réinstaller node_modules
.
Ce qui a fonctionné pour moi, c'est d'utiliser python2 lors de l'installation de npm.
> npm install --python=~/venv/bin/python