Récemment, j'ai basculé vers Node v.6, et cela a commencé à créer de plus en plus de problèmes avec l'exécution de builds normaux grunt / gulp / webpack
Par exemple:
$ gulp
[14:02:20] Local gulp not found in ~/_Other/angular-2-ts/angular2-seed
[14:02:20] Try running: npm install gulp
tandis que gulp et tous les autres plugins et modules sont installés (et même réinstallés via rm -rf node_modules
) dans le dossier / node_modules.
La plupart de ces erreurs ont une ligne comme
(node:42) fs: re-evaluating native module sources is not supported.
If you are using the graceful-fs module,
please update it to a more recent version.
avec 42 comme nombre arbitraire
Comme dans ce numéro que j'ai soumis - dans le repo angular2-seed https://github.com/mgechev/angular2-seed/issues/902
Ce que j'ai essayé de faire est de revenir à Node v.5 via n ( https://www.npmjs.com/package/n ) - cela a fonctionné. Supprimez ensuite tous les node_modules
dossiers, puis faites
npm info graceful-fs -v
3.3.6
ok, permet de mettre à jour ou de supprimer et d'installer de nouveaux:
npm i graceful-fs@latest
npm i graceful-fs@4.1.4
sudo npm i graceful-fs@4.1.4 -g
tous les résultats en
npm info graceful-fs -v
3.3.6
Alors maintenant, je suis actuellement coincé avec graceful-fs 3.3.6 ou même pire dans certaines dépendances de modules, comme
$ angular2-seed
$ npm install
//other lines..
npm WARN deprecated graceful-fs@1.2.3: graceful-fs v3.0.0 and before
will fail on node releases >= v7.0. Please update to graceful-fs@^4.0.0
as soon as possible. Use 'npm ls graceful-fs' to find it in the tree.
Quelle pourrait être la stratégie ici:
- Corrigez manuellement tous les deps qui contiennent graceful-fs <4.0.0?
- Il y a un commutateur global pour utiliser une version de package spécifique?
- Tout réinstaller?
la source
Réponses:
J'ai eu ce problème et j'ai pu résoudre ce problème en mettant à jour
npm
Avant la mise à jour, le résultat de
npm info graceful-fs | grep 'version:'
était:Après la mise à jour, le résultat est:
la source
nvm use v6.2.1
npm info graceful-fs -v
renvoie la version de npm (c'est la même chose que l'exécutionnpm -v
) et PAS graceful-fs. Pour obtenir la version gracieuse-fs, utilisez quelque chose commenpm info graceful-fs | grep version:
.rm -rf node_modules && npm install
dans le dossier d'accueil du projet.Tapez
npm list graceful-fs
et vous verrez quelles versions de graceful-fs sont actuellement installées.Dans mon cas, j'ai:
Comme vous pouvez le voir au
gulp
fond, cela dépend d'une très ancienne version. Malheureusement, je ne peux pas mettre à jour cela moi-même en utilisantnpm update graceful-fs
.gulp
auraient besoin de mettre à jour leurs dépendances. Donc, si vous avez un cas comme celui-ci, vous n'avez pas de chance. Mais vous pouvez ouvrir un problème pour le projet avec l'ancienne dépendance - iegulp
.la source
gulp
ne le changera pas dans la version 3 mais seulement dans la version 4: github.com/gulpjs/gulp/issues/1571graceful-fs
dépendance du module pré-v4 venait denpm
lui-même (version 3.10.3) via[email protected]
. Je n'ai pas vu cela jusqu'à ce que j'énumère les dépendances globalesgraceful-fs
utilisantnpm list -g graceful-fs
.Résolu ce bogue avec réinstaller gulp
la source
Suppression du contenu du dossier node_modules et exécution
résolu le problème pour moi!
la source
Comme décrit ici , vous pouvez également essayer la commande
Cela a résolu le problème pour moi, après que les autres étapes n'aient pas donné de résultats complets (à part la mise à jour de tout).
la source
Juste pour souligner que cordova apporte son propre npm avec la dépendance gracieux-fs, donc si vous utilisez Cordova, assurez-vous qu'il est le plus récent afin d'obtenir également les derniers gracieux-fs.
la source
J'ai pu résoudre ce problème en:
package.json
npm install
la source
si vous exécutez nvm, vous voudrez peut-être exécuter
nvm use <desired-node-version>
Cela maintient le nœud cohérent avec npmla source
Ou essayez de mettre à jour
node
:S'il est installé avec
brew
(comme dans mon cas).sudo npm update -g npm
n'a pas résolu le «même» problème pour moi.la source
Le rapport dit: un fichier est manquant dans ... vendor / win32-x64-48 / binding.node
J'ai cherché le fichier binding.node et je le trouve dans ...
https://github.com/sass/node-sass-binaries
Copiez le fichier correct avec le nom binding.node et cela fonctionne.
la source
Dans le cas de mon projet Cordova, la désinstallation et l'installation de cordova -g ont résolu le problème pour moi.
la source