96 votes

Comment trouver le module "fs" dans MS Code avec Tapuscrit?

Je suis en cours d'exécution sur un MacBook Air. J'ai installé MS Code IDE et ont aussi des caractères d'imprimerie installé.

J'ai un fichier simple avec juste cette ligne:

import fs = require('fs');

Je suis un rouge ondulée en vertu de la 'fs' intérieur de la parenthèse et le message d'erreur est - [ts] Cannot find module 'fs'. Le fichier a une .ts extension. Je suis nouveau à JavaScript et à la Machine, mais j'étais sous l'impression qu' fs a un module de base, comment donc pourrait-elle pas être trouvé? Comment puis-je résoudre le problème?

D'autres choses que j'ai déjà essayé:

  • Mettre un simple corps de la fonction dans le fichier, puis de compiler en ligne de commande avec tsc. Je reçois essentiellement équivalent erreur là: error TS2307: Cannot find module 'fs'.
  • Sur la ligne de commande sudo npm install fs -g. Ce rapport apparent succès, mais ne résout pas le problème.

J'ai tourné autour de SOI et sur le web, mais les réponses qui semblaient près tous semblent tenir pour acquis que " fs " est disponible.

115voto

David Sherret Points 3205

Vous devez inclure le fichier de définition pour le nœud.

Tapuscrit 2.0+

Installer à l'aide de mnp:

npm install --save-dev @types/node

Tapuscrit < 2.0

Si vous utilisez typings ensuite, vous pouvez exécuter cette commande:

typings install dt~node --global --save

Ou si vous utilisez typings < 1.0 exécuter:

typings install node --ambient --save

Ou si tout le reste échoue, télécharger manuellement le fichier ici et l'inclure dans votre projet.

55voto

Abe Points 403

Il ya une meilleure façon maintenant sans aller à la précédente dnt ou typings outils. MNP a maintenant l' @package types de caractères d'imprimerie. Dans cet exemple, vous avez besoin du package @types/node:

npm install "@types/node" --save-dev

Assurez-vous d'utiliser la save-dev option pour installer uniquement les types de mode de développement, pas de la production. Vous devriez avoir le dernier nœud bibliothèques lors de l'utilisation de la npm install "@types de/" syntaxe...

Il ne trouvant pas le fs paquet parce que les outils précédents typings plus susceptibles de ne pas utiliser le dernier nœud.d.ts fichier de définition.

Votre tsconfig.fichier json doit être mis à jour pour trouver ces types de paquets. Mon exemple si vous utilisez jquery, jqueryui et les types de nœuds. Si vous avez besoin de la syntaxe de travail pour votre éditeur de code ainsi, dans le cas présent, l'atome " de l'éditeur de code

{
"compileOnSave": false,
"compilerOptions": {
    "rootDir": "src",
    "sourceMap": true,
    "target": "es5",
    "module": "amd",
    "declaration": false,
    "noImplicitAny": false,
    "removeComments": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "moduleResolution": "node",
    "lib": ["es2015", "dom"],
    "baseUrl": "./",
    "typeRoots": [
        "node_modules/@types"
    ],
    "types": [
        "jquery",
        "jqueryui",
        "node"
    ],
    "paths": {
        "src/*": ["src/*"]
    }
},
"exclude": [
    "node_modules",
    "dist",
    "build"
],
"filesGlob": [
    "./src/**/*.ts",
    "./test/**/*.ts",
    "./typings/index.d.ts",
    "./custom_typings/**/*.d.ts",
    "./node_modules/@types/**/*.d.ts"
],
"atom": {
    "rewriteTsconfig": false
}
}

34voto

Eric N Points 1313

"fs" est l'un des principaux Nœud du module et je pense que votre importation de syntaxe de l'instruction est un peu hors. Essayez:

import * as fs from "fs";

24voto

yrtimiD Points 158

Tous vous avez besoin est "moduleResolution" ensemble pour le "nœud" dans votre tsconfig.json:

{
  "compilerOptions": {
      ...
      "moduleResolution": "node"
      ...
  }
}

exécuter

npm install @types/node --save-dev

et maintenant, vous pouvez utiliser les caractères d'imprimerie d'importation:

import * as fs from "fs";

2voto

Madhu Ranjan Points 10925

Tapuscrit connaît des modules basés sur des conventions , vérifiez la résolution de Module pour plus de détails.

Aussi pour de l'IDE, à savoir sur fs module, vous devez fournir typings pour le nœud.

Vérifiez également ce github problème

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X