TypeScriptをコンパイルしてwebpackで一つにまとめる
手順メモ
前提
| ディレクトリ名 | 用途 |
|---|---|
| ./src | ソースディレクトリ |
| ./build | ts -> js にトランスパイルされたものを仮置きするディレクトリ |
| ./public/lib/ | 実際にブラウザが読み込む js を置くディレクトリ |
必要なものをインストール
- npm i typescript -g
- npm i webpack -g
- npm i webpack-cli -g
typescript→javascript 準備
tsconfig.json 編集
1 | { |
テスト
src に適当に index.ts のようなファイルを置いて、 tsc を実行する。
./build/index.js が出来ていれば OK。複数ファイル置いても全部トランスパイルされることを
確認する。
javascript を 1 ファイルにパックする
webpack.config.js 編集
1 | // output.pathに絶対パスを指定する必要があるため、pathモジュールを読み込んでおく |
テスト
webpack を実行すると ./public/lib/index.js が出力されることを確認する。
蛇足
一番書きたかったのはここ
変更したらいちいち手動でコンパイルするの?
少しの間手動でやっていたのですが面倒過ぎます。
なのでどうにかしようと思います。…ファイルの変更を監視するオプションは tsc にはありません。
webpack にはあります。と言うことは、 typescript のトランスパイルも webpack にやって貰う必要があります。
webpack 用 ts-loader をインストール
npm i ts-loader --save-devnpm i typescript --save-dev
webpack で typescript をトランスパイルする設定
webpack.config.js に以下を加えます。蛇足ですが、カンマ等にはお気を付け下さい。
1 | // 追加 |
webpack によるトランスパイルテスト
webpack で、トランスパイルまで行われることを確認する。
tsc + webpack と出力は変わらない。
ソース変更を監視させる
webpack --watch
これでソースの変更を監視して自動でトランスパイル等をやってくれるようになる。
vue cli で作ったプロジェクトを webpack でやろうとしたらコケた
@Prop() private msg!: string;- TS6133: ‘msg’ is declared but its value is never read.
private ではなく、protected にすればよい。