web-dev-qa-db-ja.com

Visual Studio Code:TypeScriptモジュールのコンパイル

新しいVisual Studio Codeをダウンロードしたばかりで、私の第一印象は非常にポジティブです。 TypeScriptの場合、インテリセンスは美しく機能します。

ただし、奇妙な問題があります。VSCodeはTypeScriptモジュールをコンパイルできないようです。

このコード:

/// <reference path="../definitions/react.d.ts"/>

import React = require("react");

cmd上で完全にコンパイルします。

tsc --module commonjs main.ts

しかし、VS Code内では、2行目が赤で強調表示され、エディターから次のようなエラーが表示されます

「-module」フラグが提供されない限り、外部モジュールをコンパイルできません

もちろん、モジュールを使用するTypeScriptコードは、このフラグを使用してコンパイルする必要があります。しかし、IDEがモジュールの使用を認識している場合、なぜフラグを設定しないのですか?モジュールなしのTypeScriptコードは保存時に問題なくコンパイルされます。

コンパイラーのセットアップ構成ファイルが欠落していると思います。そのようなことはありますか?どこで見つけることができますか ?

更新

Tsconfig.jsonファイルを追加しました:

{
    "compilerOptions": {
        "target": "ES5",
        "module": "commonjs",
        "sourceMap": true
    }
}

これにより、実際にエラーが削除されます。残念ながらIDEはコードをコンパイルしなくなりました。最初はconfig.jsonはエラーメッセージを黙らせるだけだと思っていましたが、それ以上のことをします。Intellisenseはサンプルファイルで動作します。 Reactと入力すると、オートコンプリートがトリガーされ、意味のある提案が表示されるため、React=.

さて、VS Codeがファイルをjsにコンパイルしないのはなぜですか?タスクランナーを設定してそのジョブを実行しようとしましたが、うまくいかないようです:

{
    "version": "0.1.0",

    // The command is tsc.
    "command": "tsc",

    // Show the output window only if unrecognized errors occur. 
    "showOutput": "silent",

    // Under windows use tsc.exe. This ensures we don't need a Shell.
    "windows": {
        "command": "tsc.exe"
    },

    // args is the HelloWorld program to compile.
    "args": ["--module commonjs","${file}"],

    // use the standard tsc problem matcher to find compile problems
    // in the output.
    "problemMatcher": "$tsc"
}

ファイルを保存しても、ビルドタスクを明示的に実行しても何も起こりません。応答はありません。編集したタスクの名前は「tsc」です。私もそれを実行しようとしました。無効。次に、引数を"args": ["--module commonjs","main.ts"]、応答なしに変更しました。

更新

タスクランナーが機能するように見える唯一の方法は、次の2つの設定を使用することです。

"args": ["${file}"], 
"isShellCommand": true, 

出力は次のとおりです。

  • "args": ["-p"],
  • "args": ["-p", "."],

エラーTS5023:不明なコンパイラオプション 'p'。

  • "args": ["."],

エラーTS6053:ファイル '.ts'が見つかりません。

30
lhk

今日も同じ問題に直面しました。私はこのリンクをたどりました http://blogs.msdn.com/b/TypeScript/archive/2015/04/30/using-TypeScript-in-visual-studio-code.aspx すべてのセットアップの後手順、コマンドラインでこのコマンドを実行し、JavaScriptファイルの生成を開始しました

npm install -g TypeScript

Nodeとnpmがインストールされ、コマンドラインからアクセスできることを確認する必要があります。私が見つけた理由は、tasks.json次のオプションを指定します

"command": "tsc"
"isShellCommand": true,

そのため、Visual Studioコードはコマンドラインでコマンドtscを実行しようとしますが、tscが見つかりません。したがって、npmを使用してTypeScriptをグローバルにインストールすると、問題が解決しました。

17
khagesh

VS Codeの別のプロジェクトでも同じ問題があり、VS Codeが異なるバージョンのTypeScriptを使用していることがわかりました。

出力は次のとおりです。

  • "args": ["-p"],
  • "args": ["-p", "."],

エラーTS5023:不明なコンパイラオプション 'p'。

  • "args": ["."],

エラーTS6053:ファイル '.ts'が見つかりません。

1.5. from npmがあり、彼は1.0.を使用していました。これは、システムにインストールしたためですTypeScriptMicrosoft SDKにあり、[〜#〜] path [〜#〜]からアクセスできました。

解決策はglobalおよびuser[〜#〜] path [〜#〜]から削除されましたこのTypeScriptof Microsoft SDKsは、npmから-p引数を管理できる最新のものにアクセスします。

-v引数のみを指定してtscコマンドを実行し、正しいバージョンかどうかを確認してください。

11
Mirco Tracolli

コードのコンパイルに関して、tasks.jsonファイルは次のようになります。

{
    "version": "0.1.0",
    "command": "tsc",    
    "showOutput": "silent",
    "windows": {
        "command": "tsc.exe"
    },
    "args": ["-p", "."],    
    "problemMatcher": "$tsc"
}

Windowsで実行していて、ノードモジュールとしてTSCをグローバルにインストールしている場合は、Windowsセクションを次のように変更します。

"windows": {
    "command": "tsc",
    "isShellCommand": true
}

-p . argsは、ルートフォルダーでtsconfig.jsonファイルを検索し、それを使用してプロジェクトをコンパイルするようにtscコンパイラーに指示します。

8
Dirk Bäumer

プロジェクトのルートにtsconfig.jsonファイルを作成する必要があります。

"module": "commonjs"を設定

基本的な例:

{
    "compilerOptions": {
        "target": "ES5",
        "module": "commonjs",
        "sourceMap": true
    }
}
3
Ross Scott

同じ問題があり、Steve Fentonが提供するstackoverflowで解決策を見つけました: Visual Studio code compile on save 。彼の提案はエレガントで、現在のVS Code標準に準拠しており、説明どおりにすぐに機能しました。これを[ファイル]-> [設定]-> [キーボードショートカット]に上書きとして追加します。

[
    {
        "key": "ctrl+s",          
        "command": "workbench.action.tasks.build" 
    }
]
0
lucobada