1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

vscode拡張「code-runner」でDenoの設定

Last updated at Posted at 2023-05-22

vscodeで、開いているファイルを実行する時に便利なのが「code-runner」という拡張機能です。

この拡張機能を入れると、毎回コマンドを打たなくてもボタンから実行できるので便利です。
code-runnerについては、詳しくはこちらの記事を参照してください。

code-runner を Denoに対応させる

さて、code-runnerでJavaScript / TypeScriptを実行する場合、デフォルトのコマンドはNode.jsとts-nodeになっています。
Denoを使用したい場合は、設定を上書きしてDenoコマンドを実行するように調整してやる必要があります。
具体的には、settings.jsonに以下のように記述します。

    "code-runner.executorMap": {
        "javascript": "deno run --unstable",
        "typescript": "deno run --unstable",
        "javascriptreact": "deno run --unstable",
        "typescriptreact": "deno run --unstable",
    },
    "code-runner.executorMapByGlob": {
        "*{_,.}test.{js,ts,mjs,mts,jsx,tsx}": "deno test --unstable",
        "test.{js,ts,mjs,mts,jsx,tsx}": "deno test --unstable",
        "*{_,.}bench.{js,ts,mjs,mts,jsx,tsx}": "deno bench --unstable",
        "bench.{js,ts,mjs,mts,jsx,tsx}": "deno bench --unstable",
    },
    "code-runner.runInTerminal": true,

各設定の解説

まず、code-runner.executorMapで、JSとTSをそれぞれdeno run --unstableで実行するよう設定しておきます。
--unstableは無くてもいいですがお好みで。

    "code-runner.executorMap": {
        "javascript": "deno run --unstable",
        "typescript": "deno run --unstable",
        "javascriptreact": "deno run --unstable",
        "typescriptreact": "deno run --unstable",
    },

次に、テストファイルとベンチマークファイルの設定です。
Denoでは、

  • ファイル名がtest.{js,ts,mjs,mts,jsx,tsx}に一致するファイル
  • ファイル名が_test.{js,ts,mjs,mts,jsx,tsx}で終わるファイル
  • ファイル名が.test.{js,ts,mjs,mts,jsx,tsx}で終わるファイル

がテストファイルとして扱われます。(参考)
そのようなファイルに対しては、code-runner.executorMapByGlobを使用してdeno testコマンドが実行されるようにしておくと便利です。
(deno benchコマンドも同様)

    "code-runner.executorMapByGlob": {
        "*{_,.}test.{js,ts,mjs,mts,jsx,tsx}": "deno test --unstable",
        "test.{js,ts,mjs,mts,jsx,tsx}": "deno test --unstable",
        "*{_,.}bench.{js,ts,mjs,mts,jsx,tsx}": "deno bench --unstable",
        "bench.{js,ts,mjs,mts,jsx,tsx}": "deno bench --unstable",
    },

最後にrunInTerminalの設定です。
code-runnerは、デフォルトでは標準入力などを受け付けないモードでコマンドを実行します。
しかし、Denoを実行する際はファイルアクセスなどの権限を[y/N]で入力することが多いです。そのため、code-runner.runInTerminaltrueにしておくことで標準入力を受け付けるように設定しておきます。

    "code-runner.runInTerminal": true,

以上、code-runnerでDenoを動かすための設定方法でした。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?