2017-12-30 25 views
0

私は数日間、VSコード(repoが見つかったhere)の言語サポート拡張に取り組んでいます。私はたくさんのバグに遭遇しました。(実際には、文字通り特定の単語を強調したいと思っている人にとって、ドキュメントはそれほど素晴らしいものではありません...)。現在、主な質問は、mainpackage.jsonファイルのエントリについてです。何も見つかりませんでした。質問とそうで言語拡張のためのpackage.jsonの「メイン」とは

  1. 私はmainをファイルにディレクトリを指定していることthisから知っています。 そのファイルは何をしていますか?

  2. 私は試してみて、それが何を を把握するために、いくつかの別の拡張子のを通じて見てきたが、私は、ディレクトリ・パスはすべて outと呼ばれる全くディレクトリが存在しないにもかかわらず、"./out/......"で を始めることに気づきました。 VS code documentationにはoutというラベルのディレクトリがあります。だから、outとは何ですか?

  3. 私はYeoman拡張ジェネレータを使用しましたが、mainファイルまたはoutディレクトリは含まれていませんでした。エクステンションにはそれらがあるべきですか?私は何かを台無しにしましたか?

質問がありましたらお知らせください。ありがとう!

編集:私は質問に忘れてしまった:

私はmain気に主な理由は、私がactivationEventsフィールドを使用しようとすると、VSのコードだということですactivationEventmainの両方を指定しなければならないと述べています。この場合、mainは実際に何をする必要がありますか?

+0

メインファイルは、プロジェクトで最初に実行されるファイルです。したがって、 'node .'を実行すると、そのファイルが実行されます。 'out'ディレクトリは、コンパイルプロセスの出力用のディレクトリです。プロジェクトをビルドすると、指定されたフォルダに生成されたパッケージがあります。メインまたはアウトを含まない場合は、すべてのプロジェクトがそれを必要とするわけではありません。 –

+0

ありがとう@CristianTraìna!問題の説明に重要な詳細を追加することを忘れて、なぜ私が「メイン」を理解しようとしているのかを説明します。 tl; dr、マニフェストファイルで 'activationEvents'フィールドを使用する場合、VSコードは' main'を要求しています。どんな考え?または、私がイベントを 'activateEvents'に興味を持っているべきかどうか? 私は主に、適切なファイルタイプを開いたときに構文の強調表示が必要になるだけです(いくつかあります)。 – u2berggeist

答えて

1

mainは、ディレクトリを指定するのではなく、拡張コード(少なくともactivateのようなメインコード)を含むファイルを指定します。 activationEventsで有効にすることができるものはどこかに実装する必要があります。ファイル名を解決するために使用されるindex.jsファイルまたはローカルのpackage.jsonファイルがある場合は、フォルダを指定することもできます。私は自分自身でそれを試していない。ファイル名を使用する方が簡単です。

インストールされている拡張機能から見たコードファイルを指定するには、ここで注意する必要があります。 TSプロジェクトをお持ちの場合、コードは拡張機能が実行される前にJSに変換されます。必須ではありませんが、これらのトランスファイルの標準規格は、outフォルダ(package.jsonファイルのすぐ隣にあります)です。このフォルダはソースフォルダをミラーリングしますが、トランスファイルされたJSファイルとマップファイルを含みます。

出力フォルダは、コマンドライン(tscを手動で実行する場合など)またはtsconfig.jsonファイル(compilerOptions - >outDirを参照)で指定します。

サイドノート:大手./は本当にアウトフォルダに必要なが、先行./node_modulesを経由して、モジュールの分解能を回避(輸入を解決するときのような)他の状況に特別な処理をトリガされていません。したがって、一貫性のためにoutの代わりに./outを使用する傾向があります。

yeomanが生成したファイルについて:私はしばらくそれを使用しておらず、あなたのextension.tsファイルも生成すると思っていました(それをpackage.jsonのメインファイルとして入力します)。それが起こらない場合は、バグを起こしたり、何か間違ったことがあります。いずれにしても、そのファイルを作成してmainエントリに追加するのは数秒です。

+0

すべての情報をありがとう!私はそれに従っていますが、私は次に何をすべきかについてちょっと固まっています。 Yeomanが私のディレクトリにファイルを置かなかったので、すぐに 'extension.ts'ファイルを作成することができたとお伝えしました。私は 'extension.ts 'に何かを持つ必要がありますか?そして、それはファイルパス内の特定の場所に移動する必要がありますか? – u2berggeist

+0

また、将来的にここに見える人には、一般的に、Yo Code Generator GitHubに問題を提出しました。 [こちらの説明](https://github.com/Microsoft/vscode-generator-code/issues/99) – u2berggeist

+0

[この説明](https://code.visualstudio.com/docs/extensions/)によると、 yocode#_new-extension-typescript)と.mdファイルには、extension.tsファイル(JSプロジェクトの場合はextension.js)があります: 'Template out package.json file and extension main file .' –

関連する問題