Nestjs
WebStorm & TS 4.2.3^最新版を使用しています。
私が直面している問題は少し奇妙です。たとえば、のような一部のモジュールは、axios
通常どおりインストール、インポート、使用できます。しかし、一部のモジュールは、特にNodejs Core、fs
またはpath
モジュールとしてインポートできません。しかしそれらのメソッドは問題なくインポートして使用できます。
// ERROR: Module undefined on run:dev, but no error in IDE
import path from 'path';
import fs from 'fs';
// Working fine
import { join } from 'path';
import { readFileSync } from 'path';
手動でインストールした場合でも、正しい TS タイプが使用されていることは確かです。例:
import axios from 'axios';
import path from 'path'; // path is undefined
import { join } from 'path';
import { Injectable } from '@nestjs/common';
@Injectable()
export class AppService {
async test(input: string): Promise<void> {
// working fine
await axios.get()
// Cannot read property 'join' of undefined
await path.join()
// await join() Works fine!
}
}
tsconfig.json
Nest Cli によって生成されたものが1 つだけあります。 経由でアプリを起動していますnpm start:dev -name
が、コードを実行するまで IDE ではコードにエラーが表示されません。
tsconfig.json モジュール部分、念のため: "module": "commonjs"
、package.json にはmodule
部分がまったくありません。
ベストアンサー1
この場合、IDE は私を少し誤解させます。TS を扱っていることをほとんど忘れていました。一部のモジュールにはデフォルトのエクスポートがないようです。
- これらを次のようにインポートする必要があります:
import * as fs from 'fs';
- または、別のオプション
"esModuleInterop": true,
として、tsconfig.json