package.json
で使用すると、outDir
フラグが機能しないようです。ディレクトリ構造は非常に単純です。ルートレベルのtsconfig.json
と、src/
ディレクトリ、単一のindex.tsファイル、および他のモジュールを表す他のディレクトリ。
インデックスファイルでtsc
コマンドを実行すると、ビルドディレクトリではなく、その横に新しいコマンドが作成されます。私は何を間違えていますか?
私のtsconfig:
{
"compilerOptions": {
"outDir": "build"
}
}
私のnpmビルドスクリプト:
"build": "tsc src/index.ts"
プロジェクトのルートディレクトリからスクリプトを呼び出しています。興味深いことに、--outDir
フラグを使用して同じスクリプトを実行すると問題なく動作します。
tsc src/index.ts
でコンパイルするファイルを渡すと、tsconfig.json
は無視されます。
ドキュメント から:
コマンドラインで入力ファイルを指定すると、tsconfig.jsonファイルは無視されます。
Npmビルドスクリプトは、ファイルを渡さずにtsc
になります。
これは私のフォルダー構造です。
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。
これにより、jsファイルとmap.jsファイルを含むoutDirフォルダーが作成されます。
incremental
コンパイラオプションを使用している場合、outDir
内のファイルを削除/変更したが、_.tsbuildinfo
_ファイル。
私の問題は少し異なっていましたが、Googleが私をここに連れてきました。