web-dev-qa-db-fra.com

Flux: erreur générée Impossible de résoudre le module "réagit-redux" même après son installation

Même si le module est installé et qu'il existe, Flow ne peut pas le résoudre et génère une erreur . Voir ci-dessous: 1) À l'intérieur de bash, j'ai exécuté flow et une erreur est générée. Ce module est introuvable.

user@pc:~/code/project$ flow
Error ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈ src/functionalities/Growth/index.js:3:25

Cannot resolve module react-redux.

     1│ // @flow
     2│ import React from "react"
     3│ import { connect } from "react-redux"
     4│
     5│ type Props = {
     6│   children: Function



Found 1 error

2) La commande ci-dessous vérifie si le répertoire existe et il le fait

user@pc:~/code/project$ ls node_modules | grep react-redux
react-redux

J'ai essayé de supprimer et de réinstaller le répertoire node_modules et le fichier yarn.lock

Les versions doivent correspondre: 

flow version
Flow, a static type checker for JavaScript, version 0.77.0

.flowconfig:

[version]
0.77.0

 enter image description here

C'est très probablement un bug avec Flow, j'ai également soumis le problème. 

13
Kunok

Comment le réparer

Vous avez deux options:

  1. stub la dépendance à la main
  2. apportez flow-typed pour trouver le type de dépendance file/stub it for you

J'utilise l'option 2 mais il est agréable de savoir ce qui se passe en dessous

Option 1

Dans .flowconfig, ajoutez un répertoire sous [libs],

...
[libs]
/type-def-libs
...

Maintenant, créez ce répertoire à la racine de votre projet et un fichier /type-def-libs/react-redux qui contient,

declare module 'react-redux' {
  declare module.exports: any;
}

Option 2

  • installez flow-typed, si vous utilisez le fil yarn add -D flow-typed
    • Je préfère installer chaque local sur le projet lorsque cela est possible
  • lancez yarn flow-typed install
    • cela installera tous les fichiers de définition de type pour les modules qu’il trouvera ET il encombrera tous les modules qu’il ne trouve pas, ce qui est similaire à ce que nous avons fait dans l’option 1

Pourquoi cette erreur se produit-elle?

Flow recherche la définition type du module que vous importez. Ainsi, alors que le module existe dans /node_modules, ce fichier n’a pas de fichier de définition de type intégré dans son code. 

23
cogell

J'ai eu le même problème que vous.

 enter image description here

Je l'ai résolu en utilisant flow-typed

J'ai fait ce qui suit:

  1. Installez flow-typed globalement. exemple: $ npm install -g flow-typed
  2. Ensuite, dans le dossier racine de votre projet, exécutez $ flow-typed install [email protected] enter image description here • Searching for 1 libdefs... • flow-typed cache not found, fetching from GitHub... • Installing 1 libDefs... • react-redux_v5.x.x.js └> ./flow-typed/npm/react-redux_v5.x.x.js react-redux Vous devriez le voir si l'installation a réussi.
  3. Ensuite, essayez de réexécuter le flux $ npm run flow dans votre projet. L'erreur avec react-redux ne sera plus là.
2
zulucoda

J'ai vérifié mon fichier package.json et j'ai remarqué que react-redux était manquant. Je l'ai ajouté manuellement aux dépendances "react-redux": "x.x.x" et ai exécuté npm install par la suite. Notez que le numéro de version doit être compatible avec les autres modules. 

0
Ivan_ug

Solution alternative (dans certains cas)

Vérifiez votre .flowconfig et supprimez <PROJECT_ROOT>/node_modules/.* dans le champ [ignore] (au cas où vous l’auriez là).


Merci à @meloseven qui a résolu le problème ici .

0
exmaxx