今回は、複数のTypeScriptファイルを一つのjsファイルにコンパイルする方法をメモしておきます。
■手順
- Webpack インストール
- package.json 作成
- tsconfig.json 作成
- webpack.config.js 作成
- ビルド実行
尚、Webpackをインストールするには、npmが必要となります。
npmに関しては、以下のメモを参考に頂ければと思います。
前提
複数のtsファイルをmain.tsファイルが読み込んで利用しています。
main.tsとその他のtsファイルの内容は、一つのjsファイル(index.js)にコンパイルします。
そして、コンパイルされたjsファイル(index.js)を、test.htmlが読み込んで利用する想定です。
※設定次第では、htmlがコンパイルされたjsを読み込むタグ自体も、
自動的に挿入できる様ですが、今回のメモには含まれておりません。
Webpack インストール
まずは、webpackをインストールします。
最低限、ひとまとめのjsファイルに出力する場合、以下の要領でコマンドを実行します。
npm i -D webpack webpack-cli typescript ts-loader
https://www.npmjs.com/package/webpack-cli
http://npmjs.com/package/ts-loader
正常にインストールされると、node_modulesのディレクトリとpackage-lock.jsonが生成されます。
package.json 作成
続けてpackage.jsonを生成します。
最低限の構成で生成する場合、以下のコマンドを実行します。
※-fオプションを省略した場合、設定内容を質問形式で登録することができます。
npm init -f
package.jsonが生成されたら、
“scripts“の部分に、以下を追記します。
"build": "webpack", "watch": "webpack -w",
こちらを追加すると、単純なビルド実行と、変更を監視&自動実行ビルドを利用できる様になります。
また、”main“にひとまとめにされたjsファイル名を指定します。
{
"name": "buildTest",
"version": "1.0.0",
"description": "",
"main": "index.js",
"dependencies": {
"typescript": "^4.0.5",
"ts-loader": "^8.0.7",
"webpack-cli": "^4.1.0",
"webpack": "^5.3.2"
},
"devDependencies": {},
"scripts": {
"build": "webpack",
"watch": "webpack -w",
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC"
}
tsconfig.json 作成
次に、tsconfig.jsonを作成します。
tsc --init
そのままの内容で利用しても良いですが。
ES2015などの形式でjsを出力したい場合には、targetとmoduleの部分で指定します。
webpack.config.js 作成
続けてwebpack.config.jsを作成します。
webpack.config.jsは、webpackのビルド実行の設定ファイルですが、手動で作成します。
const path = require('path');
module.exports = {
// production : 最適化された状態のjsファイルを出力
// development : ソースマップ有効のjsファイルを出力
mode: 'development',
// メインとなるTypeScriptファイルを指定
entry: './src/main.ts',
// バンドル後のjsファイル出力先を指定
output:{
path: path.resolve(__dirname, 'build'),
filename: 'index.js'
},
module: {
rules: [
{
// 拡張子 .ts の場合
test: /\.ts$/,
// TypeScript をコンパイルする
use: 'ts-loader',
},
],
},
// import文で拡張子を省いて指定する為の設定
resolve: {
// 拡張子を配列で指定
extensions: [
'.ts', '.js',
],
},
};
※6行目のコメントは誤りです。(×:メインとなるJavaScriptファイルを指定、○:メインとなるTypeScriptファイルを指定)
ビルド実行
各種設定ファイルが揃ったら、以下のコマンドでビルドを行います。
npm run build
正常にビルドされると、
webpack.config.jsのoutputで指定された内容(ディレクトリ・ファイル名)で、jsファイルが生成されます。
生成されたjsファイルを利用するhtmlをブラウザで表示して、
正常に動作していれば、正常にコンパイルされています。
今回のメモは以上となります。
TypeScriptとWebpackの両方の機能を利用する為、
設定ファイルが多いしややこしいですが、
一つのjsファイルとしてコンパイルしたい事が多いと思います。
面倒ですが、自動化する為にWebpackはよく利用しますので、
逐一メモしておきたいと思います。












