LoginSignup
0
0

More than 1 year has passed since last update.

【Parcel】型定義だけほしいときの対処法

Posted at

環境

$ npx parcel --version
1.12.5
$ npx tsc --version
Version 4.3.5

事象

TypeScriptを使ってちょっとしたツールを書いていた。
始めはtscを使ってコンパイルを行なっていたのだが、出力を1つにまとめたいと思いparcelを用いてバンドルを行なった。

parcelはtsconfig.jsonを見てTypeScriptからのコンパイルからバンドリングまでよしなにやってくれる便利なツールであるが、型定義の出力はサポートしてくれないようである1
Issueに言われているようにparcelにプラグインをかませばできたようだが開発が止まっているようだ。

解決策

parcelによるビルドとは別にtscを動かし型定義を得ることにした。

package.json
    "scripts": {
        "build": "parcel build src/main.ts",
        "build:types": "tsc --declaration --emitDeclarationOnly --outdir './types'"
    },

tscを使って型定義を出力するにはtsconfig.jsonファイルで"declaration": trueとすればよい。

さらに"emitDeclarationOnly": trueと指定すると、型定義のみを出力することができる2

parcelはtsconfig.jsonを読んではいるが、これらのオプションに関しては無視するようである。だからtsconfig.jsonにこれらを書いてしまっても構わないのだが、それは少し気持ち悪い。
そこで、次のようにtscコマンドのオプション引数として指定してやることにした。

npx tsc --declaration --emitDeclarationOnly

# --outDirオプションは本来生成物の出力先を指定するものだが、
# これらと組み合わせると、型定義のみを特定のディレクトリに保存するような使い方ができる
npx tsc --declaration --emitDeclarationOnly --outDir './types'

参考リンク

0
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
0
0