web-dev-qa-db-ja.com

Typescript TS5042ビルド:オプション「プロジェクト」をコマンドラインでソースファイルと混在させることはできません

実行しようとしているすべてのTypeScriptプロジェクトで次のエラーが発生します。

TS5042  Build: Option 'project' cannot be mixed with source files on a command line.

無料のTypeScript Angular2テンプレートをダウンロードして実行したところ、このエラーがすぐに表示されます。

私のグローバルTypeScriptインストールに何か関係がありますか?

15
user1781272

私にとって有効な修正を見つけました。 c:\ Program Files(x86)\ MSBuild\Microsoft\VisualStudio \に複数のバージョンのVisualstudioがあります。

V15.0を開き、TypeScriptフォルダーをv14.0フォルダーにコピーします。

3
user1781272

tscコマンドは、次の2つの方法で実行できます。

  1. projectパラメータを使用して、tsconfig.jsonを含むディレクトリを指します。例:tsc --project ./apptsconfig.jsonの場所によって、コンパイルに含める必要のあるファイルのセットが決まります。 tsconfig.jsonの詳細については、こちらをご覧ください: https://github.com/Microsoft/TypeScript/wiki/tsconfig.json
  2. デフォルトのパラメータとしてファイルのリストを使用します。例:tsc MyFile1.ts MyFile2.ts MyFile3.ts

これらの2つのオプションはどちらも、コンパイルするファイルを定義しようとするため、互いに互換性がありません。

プロジェクトのコンパイルに使用しているコマンドは何ですか?または、ビルドを実行するIDEを使用していますか?

これがtscコンパイラオプションのリファレンスです

10
Nathan Friend

同じエラーが発生しましたが、tscコンパイラからのパスに示されているように、フォルダ名のすべてのスペースを削除すると、正常にビルドされるようになりました。「 this GitHub issue 」もご覧ください.

私にとっての解決策は非常に簡単でした。プロジェクトのファイルパスを確認したところ、ファイルパスのフォルダー名の1つにスペースが含まれていることに気付きました。スペースのないフォルダの名前を変更すると、TSC -pは問題なく動作しました。コマンドライン引数を解析するときにTSCがスペースで分割するように見えるため、スペースの後に私のファイルパス名の一部をコンパイルするファイルとして認識しました。

2
Horkin

追加する必要があります"terminal.integrated.Shell.windows": "C:\\WINDOWS\\System32\\cmd.exe"をVisual Studio Codeのユーザー設定に追加します。

助けになるかもしれないなら、少しアップデートします。以前の問題で説明したように、1.8の問題を確認した後、1.8をアンインストールして1.7を再インストールしようとしてプロジェクトを続行しましたが、インストールに問題がなく、asp.net 5アプリのコンパイルでさまざまな問題が発生しました。変更せずに、1.7と1.8を任意の順序で修復またはアンインストールして再インストールしてみました。最後に、ディレクトリC:\ Program Files(x86)\ MSBuild\Microsoft\VisualStudio\v14.0\TypeScriptを確認したところ、TypeScriptのすべてのバージョンのアンインストールの最後に、

このフォルダを検索して削除 この時点で、このディレクトリを完全に削除しようとし、TypeScript 1.7.6のアンインストールを再試行しました。そして今それはうまく働きます。このクリーンアップと1.8ベータ版のインストールを試みましたが、同じ問題が引き続き発生しますが、少なくとも今はasp.net 5プロジェクトで作業できます。以前のバージョンにロールバックする問題は、少なくともTypeScript.Tasks.dllを上書きできず、一貫性のない動作を生成したと思います。 1.8の夜間ビルドを動作させることが可能かもしれません

エラーTS5042が解決します。これがお役に立てば幸いです。

Powershellを使用しません。構成で古いcommand.comを使用します。

{
    "files.autoSave": "afterDelay",
    "terminal.integrated.Shell.windows": "C:\\WINDOWS\\System32\\cmd.exe"
}
0