web-dev-qa-db-fra.com

React Native: impossible de résoudre le module fs

Unable to resolve module fs from /...mypath

J'ai eu cette erreur en essayant d'importer un module de nœud dans mon application native native.

Le module a utilisé 'fs' de cette manière:

var fs = require('fs');
var list = JSON.parse(fs.readFileSync(__dirname + '/list.json', 'utf8'));
17
C.Lee

Les applications React Native ne s'exécutent pas dans l'environnement Node.js (il est uniquement utilisé par le packager pour réellement servir et compiler votre ensemble d'applications).

Étant donné que votre application s'exécute dans JS VM sur iPhone ou Android, la seule façon d'accéder au système de fichiers est d'utiliser react-native-fs ou tout autre module tiers qui utilise une connexion en pont pour parler aux API natives spécifiques à la plate-forme.

12
Mike Grabowski

J'ai fini par utiliser 'rn-nodeify' pour inclure fs dans React Native. Vous pouvez utiliser la plupart des modules de base du nœud de cette méthode. Installez-le avec npm:

npm install rn-nodeify

Puis dans le fichier package.json, ajoutez la ligne suivante dans "scripts" pour spécifier les modules que vous souhaitez inclure dans votre projet RN. Par exemple, j'ai utilisé fs, crypto et https, et la ligne continue

"postinstall": "node_modules/.bin/rn-nodeify --install crypto,fs,https --hack"
13
C.Lee