VSCodeのプラグインを開発してみる
最近は猫も杓子もVSCodeである。嫌になる。
かくいう私もEmacsなんて最近立ち上げた記憶が無い。
補間インターフェースはEmacsの方が楽だけど、LSPとの連携の問題なのか、ユーザー数の問題なのか圧倒的にVSCodeの方が優秀である。 VSCodeはMigemoに対応してないのとか、検索置換周りが糞だけど
というわけで、VSCodeを俺色にそめてやるぜ、ということでプラグイン開発してみることにした。
公式のGET START Your First Extensionを試してみる
公式のチュートリアル があるので、試してみる。取りあえずは Node.jsが必要らしい。
- NVMをインストール。私はWindowsユーザーなのでNVM Windows
- コマンドプロンプトで
nvm install lts
を実行 - 管理者権限のコマンドプロンプトで
nvm use lts
(管理者権限必要ないディレクトリ指定したんだけどな) npm install -g yo generator-code
を実行yo code
でテンプレートプロジェクトを作る。設定は以下。
cd hoge
yarn compile
node_modules/@types/node/child_process.d.ts:267:18 - error TS2304: Cannot find name 'AbortSignal'
終
制作・著作
━━━━━
Ⓝ●Ⓚ
ちょっと待て
最初にNVMをインストールしたが、これはNode.jsのバージョンが悪いのか?とか考えて複数のNode.jsをPCにインストールするために導入した。
NVMを使うとNode.jsのバージョンを切り替えることが出来る。
で、当初私はv16が入ってたのが悪いのかと思い、NVMでv14のLTSを導入してみたわけだ。
結果はご覧の通り。
AbortSignalはいつ追加されたんだ?
Node.jsのバージョンの問題では無いらしい。ならば型定義の問題だろう。 検索してみると、@types/nodeのglobals.d.tsに定義がある模様。
これのBlameを見ると、どうもv15で定義されている。 参考記事 を見ても、Node.jsのv15.4.0で導入されているようだ。
しかし、package.jsonを見ると@types/nodeは14.xと指定されている。なるほど、無いわけだ。
………いや、LTSはv14系なわけだし、14.xの指定であってるよね?あるぇ?
昔のバージョンだし、変なバグが入ったままになってるのかなぁ………。
yarn.lockを見ると………version 14.17.29ね。了
………んんん!?5時間前っ!?
なんじゃこりゃーーーー
古いんじゃなくてか最新版過ぎてバグってた?しかも5時間とか言うタイミングで。
一度 yarn remove @types/node
をして yarn add -D @types/node@14.17.27
としてから、 yarn compile
すると………
チックショォオオオオオ
まとめ
はい
というわけで、 これが最速で@types/nodeの最新14系バージョンを使ったが為にVSCodeプラグイン開発に失敗した話でした
ちなみに、ブログ記事書きながら解決したので、原因を理解したのは10分前の午前8時45である。(元々はタイトル「これが最速!VSCodeプラグイン開発に失敗したので助けて」って書いてた)
いやー………難しい………