環境のセットアップ
Deno で生産的に開発するには環境のセットアップをしておくとよいでしょう。シェルの自動補完、環境変数、エディタや IDE の設定などです。
環境変数
Deno の挙動を制御する環境変数がいくつかあります。
DENO_DIR
はデフォルトで $HOME/.cache/deno
ですが、生成されるソースコードやキャッシュされるソースコードの読み取り / 書き込みされる場所を好きなパスに設定できます。
NO_COLOR
を設定すると出力に色が付かなくなります。https://no-color.org/ を見てください。 ユーザーのコードをテストしたいときには、--allow-env
付きで NO_COLOR
を設定しなくても boolean 値の定数 Deno.noColor
を使っても同じことができます。
シェルの自動補完
シェルの自動補完用スクリプトを生成するには deno completions <shell>
を実行します。このコマンドは標準出力にスクリプトを流すので、適切なファイルに出力をリダイレクトしてください。
サポートしているシェルは以下です。
- zsh
- bash
- fish
- powershell
- elvish
例 (bash):
deno completions bash > /usr/local/etc/bash_completion.d/deno.bash
source /usr/local/etc/bash_completion.d/deno.bash
例 (フレームワークなしの zsh):
mkdir ~/.zsh # create a folder to save your completions. it can be anywhere
deno completions zsh > ~/.zsh/_deno
次に以下を .zshrc
に追記してください。
fpath=(~/.zsh $fpath)
autoload -Uz compinit
compinit -u
その後、ターミナルを再起動します。補完がまだ読み込まれない場合には、以前に生成された補完を削除するために rm ~/.zcompdump/
を実行してみてください。それから再度 compinit
で生成してください。
例 (zsh + oh-my-zsh) [zsh ユーザーの推奨] :
mkdir ~/.oh-my-zsh/custom/plugins/deno
deno completions zsh > ~/.oh-my-zsh/custom/plugins/deno/_deno
この後、~/.zshrc
ファイルのプラグインタグに deno プラグインを加えてください。antigen
のようなツールなら、パスは ~/.antigen/bundles/robbyrussell/oh-my-zsh/plugins
でコマンドは antigen bundle deno
のようになります。
例 (Powershell):
deno completions powershell > $profile
.$profile
これで Powershell profile がデフォルトで $HOME\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
に作成され、 PowerShell を起動するたびに実行されます。
エディタと IDE
Deno ではモジュールのインポートにファイル拡張子を付ける必要があり、それに加えて HTTP インポートが許可されていますが、 ほとんどのエディタと言語サーバーは今のところそれを組み込みでサポートしていません。 そのため、多くのエディタではファイルを見つけられないとかファイル拡張が不要であるといったエラーが出ます。
いくつかのエディタに関してはこの問題を解決するためコミュニティが拡張機能を開発しています。
VS Code
vscode_deno のベータ版が Visual Studio Marketplace で公開されています。問題があれば報告してください。
JetBrains IDE
JetBrains IDE のサポートは the Deno plugin を通じて利用可能です。
JetBrains IDE で Deno のセットアップを行う方法に関して、詳細な情報は YouTrack の このコメント をお読みください。
Vim と NeoVim
Vim works fairly well for Deno/TypeScript if you install CoC (intellisense engine and language server protocol).
After CoC is installed, from inside Vim, run:CocInstall coc-tsserver
and :CocInstall coc-deno
. To get autocompletion working for Deno type definitions run :CocCommand deno.types
. Optionally restart the CoC server :CocRestart
. From now on, things like gd
(go to definition) and gr
(goto/find references) should work.
Emacs
Emacs works pretty well for a TypeScript project targeted to Deno by using a combination of tide which is the canonical way of using TypeScript within Emacs and typescript-deno-plugin which is what is used by the official VSCode extension for Deno.
To use it, first make sure that tide
is setup for your instance of Emacs. Next, as instructed on the typescript-deno-plugin page, first npm install --save-dev typescript-deno-plugin typescript
in your project (npm init -y
as necessary), then add the following block to your tsconfig.json
and you are off to the races!
{
"compilerOptions": {
"plugins": [
{
"name": "typescript-deno-plugin",
"enable": true, // default is `true`
"importmap": "import_map.json"
}
]
}
}
If you don't see your favorite IDE on this list, maybe you can develop an extension. Our community Discord group can give you some pointers on where to get started.