web-dev-qa-db-ja.com

tsconfig.jsonのtypescript outDir設定が機能しない

package.jsonで使用すると、outDirフラグが機能しないようです。ディレクトリ構造は非常に単純です。ルートレベルのtsconfig.jsonと、src/ディレクトリ、単一のindex.tsファイル、および他のモジュールを表す他のディレクトリ。

インデックスファイルでtscコマンドを実行すると、ビルドディレクトリではなく、その横に新しいコマンドが作成されます。私は何を間違えていますか?

私のtsconfig:

{
  "compilerOptions": {
    "outDir": "build"
  }
}

私のnpmビルドスクリプト:

"build": "tsc src/index.ts"

プロジェクトのルートディレクトリからスクリプトを呼び出しています。興味深いことに、--outDirフラグを使用して同じスクリプトを実行すると問題なく動作します。

17
aryzing

tsc src/index.tsでコンパイルするファイルを渡すと、tsconfig.jsonは無視されます。

ドキュメント から:

コマンドラインで入力ファイルを指定すると、tsconfig.jsonファイルは無視されます。

Npmビルドスクリプトは、ファイルを渡さずにtscになります。

25
Saravana

これは私のフォルダー構造です。

enter image description here

TypeScriptファイルをsrcフォルダーに保持し、tsconfig.jsonをルートに保持します。

Tsconfig jsonファイルで、compilerOptionsのoutDirのフォルダー名を追加します

"compilerOptions": {    
    "outDir": "build",
    "module": "commonjs",
    "target": "es6",
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "noImplicitAny": true,
    "sourceMap": true
  },

以下のコマンドを実行します。

ルートフォルダーにcdして入力するだけです

tSC

または

tsc --outDir。

enter image description here

これにより、jsファイルとmap.jsファイルを含むoutDirフォルダーが作成されます。

ソース: https://github.com/Microsoft/TypeScript/issues/10585

1
chandoo

incremental コンパイラオプションを使用している場合、outDir内のファイルを削除/変更したが、_.tsbuildinfo_ファイル。

私の問題は少し異なっていましたが、Googleが私をここに連れてきました。

0
joshweir