MacBook Airで実行しています。 MSコードをIDEとしてインストールし、TypeScriptもインストールしました。
私はこの行だけの簡単なファイルを持っています:
import fs = require('fs');
かっこ内の「fs」の下に波線が赤く表示され、エラーメッセージは[ts] Cannot find module 'fs'.
です。ファイルの拡張子は.tsです。私はJavaScriptとTypeScriptを初めて使用しますが、fs
はコアモジュールであるという印象を受けていたので、どうして見つからないのでしょうか。問題を修正するにはどうすればよいですか?
私がすでに試した他のこと:
tsc
を使用してコマンドラインでコンパイルします。本質的に同等のエラーが表示されます:error TS2307: Cannot find module 'fs'.
Sudo npm install fs -g
。これは明らかな成功を報告しますが、問題を解決しません。私はSEとWebをいじりましたが、近いと思われる答えはすべて、「fs」が利用可能であると仮定しているようです。
以前のtsdまたはタイピングツールに移動することなく、今より良い方法があります。 NPMには、TypeScript用の@typesパッケージがあります。この例では、パッケージ@types/node
が必要です。
npm install "@types/node" --save-dev
Save-devオプションを使用して、本番環境ではなく開発モードでのみタイプをインストールしていることを確認してください。 npm install "@ types /"構文を使用するときは、最新のノードライブラリが必要です...
以前のツールではほとんどの場合、最新のnode.d.ts定義ファイルを使用していないため、fsパッケージが見つかりません。
これらのタイプパッケージを見つけるには、tsconfig.jsonファイルを更新する必要があります。 jquery、jqueryui、およびノードタイプを使用する場合の私の例。コードエディター、この場合は「atom」コードエディターでも機能する構文が必要であると仮定します
{
"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
}
}
「fs」はコアNodeモジュールであり、インポートステートメントの構文は少しずれていると思います。試してください:
import * as fs from "fs";
必要なのは、tsconfig.jsonで「node」に設定された「moduleResolution」のみです。
{
"compilerOptions": {
...
"moduleResolution": "node"
...
}
}
execute
npm install @types/node --save-dev
そして今、あなたは標準のTypeScriptインポートを使用することができます:
import * as fs from "fs";
TypeScriptは規則に基づいてモジュールを認識します。詳細については、 モジュール解像度 を確認してください。
IDEがfs
モジュールについて知るためには、ノードの型指定を提供する必要があります。
これも確認してください github issue