TypeScriptの開発環境構築(2)
TypeScriptの開発環境
前記事を実施した前提での記事となります。
環境準備(2)
モジュールバンドラー(webpack)等、各ツールのインストールを行います。
webpack、webpackコマンド、devサーバー、ts-loader
$npx i -D webpack webpack-cli webpack-dev-server ts-loader
package.json
webpack設定ファイルの準備
「webpack.config.js」という名称でファイルを作成し、コンフィグ(webpackの各種設定)を指定していきます。
内容は下記で保存。
※書き換えの細かい設定としてよく触る項目
entry・・・作業するファイル指定
output・・・出力先指定、出力ファイル名指定
mode・・・JSの出力形式
modeについて
「development」はまだ可読しやすい様なJSの出力だが、軽量化されていない。
mode: “production”,とすれば、圧縮、軽量化されたJSで書き出せる。
module.exports = {
entry: {
bundle: "./src/index.ts",
},
output: {
path: `${__dirname}/dist`,
filename: "[name].js", // [name]はentryで記述した名前(この設定ならbundle)
},
// import文でファイル拡張子を書かずに名前解決するための設定
// 例...「import World from './world'」と記述すると"world.ts"という名前のファイルをモジュールとして探す
// モード値を production に設定すると最適化された状態で、
// development に設定するとソースマップ有効でJSファイルが出力される
mode: "production",
resolve: {
extensions: [".ts", ".js"],
},
devServer: {
static: {
directory: `${__dirname}/dist`,
},
open: true,
},
// モジュールに適用するルールの設定(ローダーの設定を行う事が多い)
module: {
rules: [
{
// 拡張子が.tsのファイルに対してTypeScriptコンパイラを適用する
test: /\.ts$/,
loader: "ts-loader",
},
],
},
performance: { hints: false },
};
開発用、公開用の各ディレクトリの準備
作業フォルダ配下に下記フォルダを作成する。
・src ・・・ ソース(作業場所)
・dist ・・・ 公開(本番用として出力する場所)
distフォルダ配下に、表示用に「index.html」を作成。
※後に書き出されたJSをブラウザにて動作するか確認する用のファイルです。
後に利用しやすい様に、下記記述で作成しておく。
body内に下記を入れておく。
<div id="root"></div> <script src="bundle.js"></script>
srcフォルダ配下に、「index.ts」を作成し、編集する。
TSコンパイルの設定ファイルの準備
下記コマンドを実行する。
$npx tsc --init
tsconfig.jsonという設定ファイルが生成されます。用途によって設定を行う。
クラスを管理するファイルの作成
srcフォルダ配下に、「js-class.ts」を作成します。
「js-class.ts」に動作確認用のソースコード、下記を記述する。(なんでも良い)
export default class js-class1{
message: string;
construgtor{
this.message = message
}
public js-class1(elem: HTMLElement | null){
if(elem){
elem.innerText = this.message
}
}
}
次に、「index.ts」(名前はcommon.tsでもなんでもOK)を作成します。
js-class.tsをインスタンス化して利用する記述。
import js-class from "./js-class";
const root: HTMLElement | null = document.getElementById("root");
//インスタンス化
const js-class = new js-class1("表示させたい文字を引数に入れるよ")
js-class.js-class1(root)
バンドル(一つにまとめる)について
「package.json」を開きます。
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
の部分を下記に調整する。(ついでにローカルサーバー立ち上げ設定も記述)
"scripts": {
"build": "webpack",
"start": "webpack serve"
},
ビルドコマンドを実行する。
$npm run build
distフォルダ内にバンドルされたJSが生成されます。
これは、srcフォルダに先程作成した2つのTSファイルを読み込みコンパイルしたものを、distフォルダに「build.js」として書き出す、という操作になります。
ローカルサーバーの立ち上げについて
個人的には、VSCodeの拡張機能「Live Server」のご利用をお勧めします。
「Go Live」ボタンで起動。
以下でご紹介する「ts-loaderを利用した立ち上げ」ですが、ローカルサーバーの立ち上げの一例であります。
他にもやり方はあると思いますので、個人の使い慣れた制作に合わせるなどご判断下さい。
(バンドルの設定手順で記述したstartの一文があれば良し)
「package.json」を開きます。
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
の部分が下記の様に「start」があるか確認してください。
"scripts": {
"start": "webpack serve"
},
調整したら、ローカルサーバーを立ち上げるコマンドを実行します。
$ npm start
正常に動けば自動的にブラウザが開き、「localhost:8080」のページが開かれます。
ブラウザの表示で、「index.ts」の js-class(引数)に入れた文字が表示されていれば成功です。
お疲れ様でした、
以上でTypeScriptの環境構築は以上となります。


