Récemment, je suis passé à Node v.6, et il a commencé à créer de plus en plus de problèmes lors de l'exécution de versions normales de 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, j'ai déjà envoyé - dans le repo angular2-seed https://github.com/mgechev/angular2-seed/issues/902
Ce que j'ai essayé de faire est de passer à Node v.5 via n ( https://www.npmjs.com/package/n ) - cela a fonctionné. Ensuite, supprimez tous les dossiers node_modules
, puis faites
npm info graceful-fs -v
3.3.6
ok, permet de mettre à jour ou de supprimer et installer de nouvelles:
npm i graceful-fs@latest
npm i [email protected]
Sudo npm i [email protected] -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 certains dépendances de modules, comme
$ angular2-seed
$ npm install
//other lines..
npm WARN deprecated [email protected]: 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:
J'ai eu ce problème et j'ai pu résoudre ce problème en mettant à jour npm
Sudo npm update -g npm
Avant la mise à jour, le résultat de npm info graceful-fs | grep 'version:'
était:
version: '3.3.12'
Après la mise à jour, le résultat est le suivant:
version: '3.9.3'
Tapez npm list graceful-fs
et vous verrez quelles versions de graceful-fs sont actuellement installées.
Dans mon cas j'ai eu:
npm list graceful-fs
@request/[email protected] /projects/request/promise-core
+-- [email protected]
| `-- [email protected]
| +-- [email protected]
| | `-- [email protected]
| | `-- [email protected]
| | `-- [email protected]
| | `-- [email protected] <==== !!!
| `-- [email protected]
`-- [email protected]
+-- [email protected]
| `-- [email protected]
| `-- [email protected]
| `-- [email protected]
| `-- [email protected]
`-- [email protected]
`-- [email protected]
`-- [email protected]
Comme vous pouvez le constater, gulp
dépend d'une version très ancienne. Malheureusement, je ne peux pas le mettre à jour moi-même avec npm update graceful-fs
. gulp
aurait 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, c'est-à-dire gulp
.
Résolu ce bug avec la réinstallation de gulp
npm uninstall gulp
npm install gulp
Comme décrit ici , vous pouvez également essayer la commande
npm cache clean
Cela a réglé le problème pour moi, après que les autres étapes n’aient pas donné tous les résultats (autre que la mise à jour complète).
J'ai pu le réparer en:
package.json
npm install
Suppression du contenu du dossier node_modules et exécution
npm install bower
npm install
résolu le problème pour moi!
Juste pour signaler que cordova apporte son propre npm avec la dépendance graceful-fs, donc si vous utilisez Cordova, assurez-vous qu’il s’agit de la dernière version pour obtenir le dernier f Graceful-fs.
si vous utilisez nvm, vous voudrez peut-être exécuter nvm use <desired-node-version>
Ceci conserve la cohérence du noeud avec npm
Dans le cas de mon projet Cordova, la désinstallation et l'installation de cordova -g ont résolu le problème.
npm uninstall -g cordova
npm install -g cordova
Le rapport indique: un fichier est manquant dans ... vendor/win32-x64-48/binding.node
J'ai cherché le fichier binding.node et je l'ai trouvé dans ...
https://github.com/sass/node-sass-binaries
Copiez le fichier correct avec le nom binding.node et cela fonctionnera.
Ou essayez de mettre à jour node
:
brew upgrade 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.