typescript練習帳

本書はtypescirptの使い方について書いて行きます。

677 views

webpackの使い方

前ページで、tscコマンドを使ってビルドする方法について説明しました。
しかし、複数のjsファイルをすべて配布するのは使い勝手が悪いです。
前ページで言えば、app.jsとsample.jsを配布しないと、使えません。
これが10ファイル、100ファイルで作るとなると、配布するときに大量のファイルを配布することになります。

C言語で言えば、オブジェクトファイルが生成されているだけの状態で、まだ実行ファイルが生成されていないのと同じような状況です。

複数のjavascirptファイルを一つのファイルにまとめて、配布しやすくするのがwebpackです。

まず、webpackをインストールしましょう。
以下のコマンドを実行してください。webpackをグローバルにインストールします。

npm install webpack -g

次に、カレントディレクトリにwebpack.config.jsを作成してください。
webpack.config.jsには次の内容を記述してください。
このファイルが、リンカーの設定ファイルになります(C言語の人向け)。

const path = require('path');

module.exports = {
  // モードの設定、v4系以降はmodeを指定しないと、webpack実行時に警告が出る
  mode: 'development',
  // エントリーポイントの設定
  entry: './dist/app.js',
  // 出力の設定
  output: {
    // 出力するファイル名
    filename: 'bundle.js',
    // 出力先のパス(絶対パスを指定する)
    path: path.join("C:/Users/konishi/typescriptSample", 'output')
  }
};

7行目で、mainとなるソースを指定します。
11行目がすべてのjsファイルを一つにまとめたファイルです(C言語なら実行ファイルと解釈してもOK)。
13行目は出力先を指定します。ここではoutputディレクトリをC:/Users/konishi/typescriptSampleの下に作成します。
このoutputパスの下に11行目で指定したbudle.jsが作成されます。

ファイルの状態を以下に記します。

C:.
│  tsconfig.json
│  webpack.config.js
│
├─dist
│      app.js
│      sample.js
│
├─output
└─src
        app.ts
        sample.ts

もし、distの下にjsファイルがない場合は、tscコマンドを実行してください。
この状態で、次のコマンドを実行します。

cd C:\Users\konishi\typescriptSample
webpack

実行すると、outputディレクトリが作成され、bundle.jsファイルが生成されています。

C:.
│  tsconfig.json
│  webpack.config.js
│
├─dist
│      app.js
│      sample.js
│
├─output
│      bundle.js
│
└─src
        app.ts
        sample.ts

bundule.jsにはapp.jsとsample.jsが合体した、一つのファイルになっています。
試しに以下のコマンドを実行してみましょう。

cd C:\Users\konishi\typescriptSample\output
node bundle.js

カレントにsample.jsやapp.jsがなくても実行されることが確認できます。

まとめ

ここまでで、いろいろなコマンドや設定ファイルが出てきて混乱しますが、C言語やpythonを例にまとめると、表2の関係があります。

表2 コマンドや設定ファイルのまとめ

コマンドや設定ファイル C言語で対応コマンド Pythonで対応するコマンド 説明
node なし pythonインタプリタ― javascirptを実行するインタープリター。
npm なし pipコマンド javascirptに関連するモジュールをインストールする、パッケージ管理コマンド。
tsc gcc,or g++(オブジェクトファイル作成) なし typescirptをjavascirptのコードに変換するコンパイラ。
tsconfig.json makeファイル(オブジェクトファイル作成) なし tscコマンドのコンパイルオプションなどを指定する。
webpack gcc or g++ (リンカー) なし 複数のjavascirptファイルを一つにまとめるコマンド。
webpack.config.json makeファイル(リンカー) なし 複数のjavascirptファイルを一つにまとめる。makeファイルのリンカーと同じ役割。

このように理解すると、それぞれが何をやっているのか、わかると思います。

Page 5 of 12.

前のページ 次のページ



[添付ファイル]


お問い合わせ

プロフィール

すぺぺぺ

自己紹介

本サイトの作成者。
プログラムは趣味と勉強を兼ねて、のんびり本サイトを作っています。
フレームワークはdjango。
ChatGPTで自動プログラム作成に取り組み中。

サイト/ブログ

https://www.osumoi-stdio.com/novel/

ツイッター

@darkimpact0626