😎
denoのすごい公式ツールたち(deno fmt, deno lint)
今までLinterなど導入するのめんどくさいなと思ってたんですが、denoだと最初から様々なツールが入ってて驚いたので紹介します
deno fmt
Rustで書かれたdprint
という高速なフォーマッターが使われている、昔はPrettierが使われていた
対応しているもの
言語 | 文書 |
---|---|
JS/TS | マークダウン |
JSX/TSX | Json/Jsonc |
使い方
通常
deno fmt
ファイル指定
deno fmt myfile.ts
確認
deno fmt --check
自動
deno fmt --watch myfile.ts
今まで設定ファイルがなくてフラグ使うしかなったのですが、最近deno.json
が追加されました
スキーマはこちらで公開されています、セミコロン無効化ない..
個人的にダブルクォーテーションが嫌いなのとnode_modulesをフォーマットしてほしくないので以下の設定をしています
{
"fmt": {
"files": {
"exclude": ["node_modules"]
},
"options": {
"useTabs": false,
"singleQuote": true
}
}
}
VSCodeでも使えるので入れ方
VSCodeの設定ファイルを編集{
"deno.lint": true,
"deno.path": "/usr/local/bin/deno",
"deno.config": ".config/deno.json",
"[json]": {
"editor.defaultFormatter": "denoland.vscode-deno"
},
"[jsonc]": {
"editor.defaultFormatter": "denoland.vscode-deno"
},
"[javascript]": {
"editor.defaultFormatter": "denoland.vscode-deno"
},
"[typescript]": {
"editor.defaultFormatter": "denoland.vscode-deno"
},
}
現在、フォーマットオンペーストまたはフォーマットオンタイプの機能は提供していません。
deno lint
使い方
通常
deno lint
ルール
--rules
List available rules
--rules-exclude=<rules-exclude>
Exclude lint rules
--rules-include=<rules-include>
Include lint rules
ルールの確認
deno bundle
Rustで書かれたswc
が使われている
すべての依存関係を含んだ一つのJavaScriptファイルを出力します。
nodeの場合でもswc
を導入することで快適になった
npm i -g @swc/cli @swc/core chokidar
swc FILE -o output.js -C jsc.target=es2016
swc
はts-node
でも使えます
console.log("Hello")をするだけのプログラムでts-node
の速度比較をしました
swc無し
real 0m5.118s
user 0m6.010s
sys 0m0.329s
swc使用
real 0m1.909s
user 0m1.268s
sys 0m0.201s
使い方
通常
deno bundle <source_file> [out_file]
自動
deno bundle --watch <source_file> [out_file]
deno compile
JS/TSをコンパイルしてくれる
使い方
通常
deno compile <SCRIPT_ARG>
Deno は現在 Windows x64、macOS ARM そして Linux x64 へのコンパイルをサポートします。
終わりに
便利な拡張機能見つけました
Love 🦕
Discussion