web-dev-qa-db-fra.com

Impossible de trouver le module 'internal / fs' après la mise à niveau vers le noeud 7

Nous avons récemment essayé de mettre à niveau le noeud v7.0.0 sur notre serveur de génération, mais des problèmes se sont produits lors de l'échec de la tâche de construction de l'application sur l'étape "bower_concat" :

Loading "bower-concat.js" tasks...ERROR
Error: Cannot find module 'internal/fs'

Ce que nous avons installé:

  • node v7.0.0 (installé via yumréférentiel "nodeource" )
  • npm 4.0.1
  • en utilisant grunt (si cela est pertinent)
  • grunt-bower-concat 0.6.0

La configuration de la tâche de construction Grunt:

grunt.registerTask(
    'build:prod', [
        'clean:prod',
        'copy:prod',
        'replace',
        'bower_concat',
        'ngtemplates',
        'concat',
        'uglify',
        'cssmin',
        'injector:prod',
        'copy:cssfix',
        'copy:dist',
        'bowercopy:dist',
        'bowercopy:fonts',
        'template:setProdVersion'
    ]
);

Et le grunt bower_concat tâche:

bower_concat: {
    all: {
        dest: '<%= app.build %>/bower.js',
        cssDest: '<%= app.build %>/bower.css',
        dependencies: {
            'bootstrap': 'jquery'
        },
        mainFiles: {
            "angular-app-modules": [
                "app/dist/angular-app-modules.min.js",
                "app/dist/angular-app-modules.min.css"
            ]
        }
    }
}, 

Notez que cela fonctionne sans aucun problème sur le noeud v6.9.0.

Qu'est-ce qui peut causer le problème? Peut-on résoudre le problème sans rétrograder au nœud v6?


Il y a aussi cette question pertinente , mais, à ce jour, les informations qui y figurent ne sont d'aucune utilité dans notre cas.

53
alecxe

Tout d’abord, ouvrez la console en tant qu’administrateur (ou dans le terminal avec Sudo s’il s’agit d’un Linux) et:

npm cache clean

Pour npm 5 et plus tard

npm cache clean --force

Modifier:

Pour Windows, vous pouvez échouer à nettoyer le cache. Vous pouvez donc supprimer le cache manuellement en supprimant tout le contenu du dossier suivant:

C:\Users\<USER-NAME>\AppData\Roaming\npm-cache

Merci "superwf", ce cas peut arriver pour certains, mais je n'ai jamais eu à le faire (peut-être à cause de mon niveau de sécurité le plus bas?!).

Terminez la modification.


Revenez ensuite à la console normale (pas à l'administrateur ni à la racine), revenez dans le répertoire de votre projet où se trouve package.json, puis supprimez le fichier node_modules dossier de votre projet, supprimez-le complètement, puis réinstallez les modules de nœud dans votre dossier de projet:

npm install

Vous devrez peut-être mettre à jour vos modules avant de réinstaller les modules. Je le recommande, mais faites attention de ne pas modifier les modifications s'il y a des changements de version majeurs dans vos modules. Ce module (npm-check-updates peut vous aider à vérifier la dernière version et à la mettre à jour.

En outre, vous devrez peut-être également installer les derniers modules globaux et vérifier les mises à jour en:

ncu -g

ou

npm outdated -g

Si vous êtes toujours bloqué, vous devrez peut-être supprimer le fichier global node_modules dossier et réinstallez ce que vous voulez à nouveau.


Éditer :

Option de fil : Certaines personnes ont fini avec les mêmes problèmes, même avec les procédures de nettoyage. En fait, vous économisez beaucoup de temps avec Fils . Personnellement, j'ai commencé à utiliser yarn au lieu du traditionnel npm i, Je peux vous garantir une rapidité accrue et économiser votre temps et votre tête des maux de tête npm.

58
Al-Mothafar

Dans mon cas, vider le cache (OSX) ne fonctionnait pas. J'utilise n pour gérer le nœud, ce qui peut rendre potentiellement obsolète npm. Selon n docs vous pouvez mettre à jour npm avec:

curl -0 -L https://npmjs.org/install.sh | Sudo sh
19
cyberwombat

Dans linux, lorsque je mets à jour le noeud 7, cela se produit, "npm cache clean" fonctionne.

Dans Windows, NPM Cache Clean génère également

Erreur: Impossible de trouver le module 'internal/fs'

Il suffit de retirer

C:\Utilisateurs [nom d'utilisateur]\AppData\Roaming\npm

C:\Utilisateurs [nom d'utilisateur]\AppData\Roaming\npm-cache

résolu

14
superwf

Dans mon cas, vider le cache ne fonctionnait pas. Voici mon état initial et comment j'ai résolu ceci:

node -v v7.4.0
npm -v 4.0.5

J'ai résolu en procédant comme suit et en utilisant n manager:

$ Sudo n 6.9.1
$ Sudo npm -g install npm@next
$ Sudo n stable

J'espère que cela t'aides!

11
Abhilash Shamsunder

J'utilise le n tool pour gérer la commutation entre les versions de noeud (et de npm fournies).

Pour corriger cette erreur, j'ai simplement supprimé npm de l'espace global (macOS): Sudo rm -rf /usr/local/lib/node_modules/npm

J'ai ensuite relu Sudo n dernièrement. Cela réinstallera npm. Lorsque vous revenez à la version précédente du noeud, exécutez simplement Sudo n 4.3.2.

Pour résumer:

> Sudo rm -rf /usr/local/lib/node_modules/npm
> Sudo n latest
> node --version
v7.7.1
> npm --version
4.1.2
> Sudo n 4.3.2
> npm --version
2.14.12
6
rynop

La solution qui a fonctionné pour moi était de

1) Supprimer node_modules /

Sudo rm -R node_modules/ 

2) refaire une gorgée

gulp

3
zeros-and-ones

Vous devez installer la dernière version de bower

> npm install -g bower

Apparemment, npm> 4.0 n'utilise pas le module internal/fs.

2
Anis Ben Amara

Je suis sous Windows 8.1 x64, passant de v6 à v7. J'ai eu ce problème sur l'installation globale J'ai déjà beaucoup de paquets installés, mais chaque fois que j'ai exécuté la commande npm, que npm install, npm list,npm update etc. retournent toujours la même erreur

Cette étape fonctionne pour moi:

  1. Nettoyez le cache npm manuellement en supprimant le dossier npm-cache situé à

C:\Utilisateurs [nom d'utilisateur]\AppData\Roaming \

  1. Supprimer/renommer npm dossier dans mon répertoire d'installation NodeJS. Dans ce cas, je renomme le dossier npm en npm - dans

C:\Program Files\nodejs\node_modules

  1. Réinstallez NodeJS v7

Tout fonctionne bien alors

2

Si vous utilisez mac

cd ~/.nvm/versions

et supprimer le dossier du noeud

2
Tokala Sai Teja

Je résous ce problème en installant NVM pour gérer Node

https://github.com/creationix/nvm#installation

après avoir installé NVM, réinstallez le noeud

nvm install node
2
cyberfly

Dans mon cas, vider le cache ne fonctionnait pas. Qu'est-ce que le travail a été de supprimer le node_modules/npm dossier dans l’emplacement d’installation de mon noeud. Ensuite, exécutez à nouveau le programme d'installation de nodejs et utilisez l'option 'réparation' (remarque: il s'agit de Windows).

D'après ce que j'ai pu rassembler dans le journal de débogage de npm, il semblait que mon ancienne version de npm n'avait pas été complètement supprimée avant l'installation de la nouvelle version. Il y avait donc quelques modules obsolètes en attente dans le dossier où npm était installé.

2
Adam Weber

Couru dans ce problème après une Node v4.X à la mise à jour v7.8.0. Réinstaller le NPM et une dernière vérification, m'a amené à un NPM v4.5.0 de travail.

curl -L https://www.npmjs.com/install.sh | sh
npm install npm@latest -g
1
Ryan Ruppert

Aucune des réponses n'a fonctionné pour moi.

En fin de compte, j'ai réinstallé les nœuds et ionic), ce qui a permis de résoudre le problème:

npm cache clean -f
npm install npm -g

npm uninstall node
npm install node -g

Les informations de mon système avant de résoudre le problème:

Cordova CLI: 7.0.1
Ionic CLI Version: 1.7.11         <-- way too old
Ionic App Lib Version: 0.6.5
ios-deploy version: 1.9.1
ios-sim version: 5.0.4
OS: Mac OS X El Capitan
Node Version: v8.0.0
Xcode version: Xcode 8.3.3 Build version 8E3004b
1
David Nathan

Sous Win10, cela a fonctionné pour moi: (réglez la version et le nom d'utilisateur du nœud correspondant)

  • Désinstallez le noeud (via node-v7.8.0-x64.msi)
  • Supprimez les dossiers "npm" et "npm-cache" dans "C:\Utilisateurs\votre nom d'utilisateur\AppData\Roaming
  • Réinstallez le noeud (via node-v7.8.0-x64.msi)
1
Michael L

si vous utilisez n pour mettre à jour node versions et que toutes les commandes npm échouent avec ce message, cela signifie que vous avez le dernier noeud, mais une version plus ancienne de npm.

alors dans ce cas, procédez comme suit (vous aurez peut-être besoin de Sudo)

n 4.7 npm install npm -g n latest

il retournera au noeud 4.7 puis installera le dernier npm en l’utilisant. après que cela reviendra à la dernière version de npm. (remplacez la dernière par la version que vous voulez réellement)

0
Haseeb Eqx

1) Sudo npm cache clean -f

2) Sudo npm install -g n

3) Sudo n stable

Juste trois étapes :)

0
Krunal Vaghela