【IT】TypeScript開発環境の下準備
皆さま
こんにちは
今日は、webpackを用いてTypeScript開発環境の下準備を行います。
今回の内容
1.モジュールのインストール
2.初期ファイルの設置
3.サンプルファイルの作成
4.コンパイル
5.動作確認
1.モジュールのインストール
必要モジュールをインストールしていきます。
・プロジェクト用のディレクトリを作成
$ mkdir tsStudy001
$ cd tsStudy001
・プロジェクトの初期化を行います。(全てデフォルトでエンター)
$ npm init
This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults.
See `npm help init` for definitive documentation on these fields
and exactly what they do.
Use `npm install <pkg>` afterwards to install a package and
save it as a dependency in the package.json file.
Press ^C at any time to quit.
package name: (tsstudy001)
version: (1.0.0)
description:
entry point: (index.js)
test command:
git repository:
keywords:
author:
license: (ISC)
About to write to /Users/test/tsStudy001/package.json:
{
"name": "tsstudy001",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC"
}
Is this OK? (yes)
・「package.json」が出来てるのを確認します。
$ ls
package.json
・TypeScriptをインストールします。
$ npm install --save-dev typescript
up to date, audited 320 packages in 940ms
42 packages are looking for funding
run `npm fund` for details
found 0 vulnerabilities
・「npx tsc」コマンドが有効になっているか確認します。
$ npx tsc -v
Version 5.1.3
・webpackとts-loaderを導入します。
$ npm install --save-dev webpack webpack-cli webpack-dev-server ts-loader
added 319 packages, and audited 320 packages in 17s
42 packages are looking for funding
run `npm fund` for details
found 0 vulnerabilities
2.初期ファイルの設置
必要なディレクトリとファイルを作成します。
・プロジェクト配下にフォルダーと空のファイルを作成します。
「dist/index.html」 (フォルダーをファイルを作成)
「src/index.ts」 (フォルダーをファイルを作成)
「webpack.config.js」 (ファイルを作成)
・webpackの設定ファイルを作成します。
「webpack.config.js」
module.exports = {
entry: {
// 対象はどのファイルか?
bundle: "./src/index.ts",
},
output: {
// どこに出力するか?
path: `${__dirname}/dist`,
// ファイル名の命名規則
// [name]はentryで記述した名前(この場合は、bundle)
filename: "[name].js"
},
// モードは、開発 か プロダクトか?
mode: "development",
resolve: {
// importで拡張子がつくていなくても名前解決する設定
extensions: [".ts", ".js"],
},
devServer: {
static: {
// devサーバをみにいくときの対象
directory: `${__dirname}/dist`,
},
// 自動でブラウザー起動
open: true,
},
module: {
// 拡張子がtsのものをts-loaderを用いてコンパイルする
rules: [
{
test: /\.ts$/,
loader: "ts-loader",
},
],
},
// 大きすぎるアセットがあることワーニングとして通知する
// error(エラー通知) / warning(警告) / false(警告しない:注意’をつけない)
// 開発環境はfalseへ設定
performance: { hints: false, },
};
・「package.json」に
"build": "webpack",
"start": "webpack serve"
を追加します。
・TypeScriptの設定ファイルを作成します。
Configファイルは必要に応じて修正します。
$ npx tsc --init
Created a new tsconfig.json with:
TS
target: es2016
module: commonjs
strict: true
esModuleInterop: true
skipLibCheck: true
forceConsistentCasingInFileNames: true
You can learn more at https://aka.ms/tsconfig
3.サンプルファイルの作成
・動作確認用のindex.htmlとindex.ts を作成します。
「dist/index.html」
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Type Script Study</title>
</head>
<body>
<div id="app"></div>
<script src="bundle.js"></script>
</body>
</html>
「src/index.ts」
//htmlElement型の変数(app)を指定
const app: HTMLElement | null = document.getElementById("app")
// HelloWorldClassを設定
export default class HelloWorldClass {
message: string;
constructor(message: string){
this.message = message
}
public HelloMessge(elem: HTMLElement | null) {
if(elem) {
elem.innerText = this.message
}
}
}
// HelloWorldClassをインスタンス化
const HelloWorld = new HelloWorldClass("Hello World"!!!)
HelloWorld.HelloMessge(app)
4.コンパイル
・buildコマンドにてjsファイルへコンパルします。
$ npm run build
> tsstudy001@1.0.0 build
> webpack
asset bundle.js 1.81 KiB [emitted] (name: bundle)
./src/index.ts 545 bytes [built] [code generated]
webpack 5.87.0 compiled successfully in 1401 ms
・dist配下に「bundle.js」が出来ていることを確認します。
5.動作確認
・「npm start」でテスト用サーバを起動します。
$ npm start
> tsstudy001@1.0.0 start
> webpack serve
<i> [webpack-dev-server] Project is running at:
<i> [webpack-dev-server] Loopback: http://localhost:8080/
・
・
・
無事に「Hello World」が出力されたのを確認します。
では
この記事が気に入ったらサポートをしてみませんか?