webpackを使用してTypeScriptコードをパッケージ化およびコンパイルする方法を教えます

webpackを使用してTypeScriptコードをパッケージ化およびコンパイルする方法を教えます

TypeScript バンドル

webpack 統合

通常、実際の開発では、ビルド ツールを使用してコードをパッケージ化する必要があります。

TS はビルドツールと組み合わせて使用​​することもできます。以下では、webpack を例に、TS をビルドツールと組み合わせて使用​​する方法を紹介します。

手順は次のとおりです。

プロジェクトを初期化する

プロジェクトのルートディレクトリに入り、 npm init -yコマンドを実行してpackage.jsonファイルを作成します。

ビルドツールをダウンロードする

コマンドは次のとおりです。

npm i -D webpack webpack-cli webpack-dev-server typescript ts-loader clean-webpack-plugin

合計 7 つのパッケージがインストールされました:

  • webpack: ビルドツール webpack
  • webpack-cli: webpack のコマンドライン ツール
  • webpack-dev-server: webpack 開発サーバー
  • タイプスクリプト: ts-compiler
  • ts-loader: ts ローダー。webpack で ts ファイルをコンパイルするために使用されます。
  • html-webpack-plugin: webpack の html プラグイン。html ファイルを自動的に作成するために使用されます。
  • clean-webpack-plugin: 各ビルドの前にディレクトリをクリーンアップする webpack のクリーンアップ プラグイン

webpackを設定する

ルート ディレクトリに webpack 構成ファイルwebpack.config.jsを作成します。

定数パス = require("パス");
const HtmlWebpackPlugin = require("html-webpack-plugin");
const { CleanWebpackPlugin } = require("clean-webpack-plugin");

モジュール.エクスポート = {
   最適化:
       最小化: false // コード圧縮をオフにする(オプション)},

   エントリ: "./src/index.ts",

   開発ツール: "インラインソースマップ",

   開発サーバー: {
       コンテンツベース: './dist'
   },

   出力: {
       パス: path.resolve(__dirname, "dist"),
       ファイル名: "bundle.js",
       環境:
           arrowFunction: false // webpack の矢印関数をオフにします (オプション)}
   },

   解決する: {
       拡張子: [".ts", ".js"]
   },

   モジュール: {
       ルール:
           {
               テスト: /\.ts$/,
               使用: {
                   ローダー: "ts-loader"     
               },
               除外: /node_modules/
           }
       ]
   },

   プラグイン: [
       新しい CleanWebpackPlugin()、
       新しいHtmlWebpackプラグイン({
           タイトル:「TSテスト」
       })、
   ]
}

TSコンパイルオプションを設定する

ルートディレクトリにtsconfig.jsonを作成し、必要に応じて設定します。

{
   "コンパイラオプション": {
       "ターゲット": "ES2015",
       "モジュール": "ES2015",
       "厳密": 真
   }
}

package.json 構成を変更する

package.jsonを変更し、次の設定を追加します。

{
   ...
   「スクリプト」: {
       "test": "echo \"エラー: テストが指定されていません\" && exit 1",
       「ビルド」:「webpack」、
       "開始": "webpack サーブ --open chrome.exe"
   },
   ...
}

プロジェクトの使用

src の下に ts ファイルを作成し、コマンド ラインでnpm run build実行してコードをコンパイルします。

または、 npm startを実行して開発サーバーを起動します。

バベル

開発中にコードを変換するには、webpack に加えて babel が必要になることがよくあります。

より多くのブラウザと互換性を持たせるために、上記の手順に基づいて、以下の手順でプロジェクトに babel を導入します。

TS はコンパイル中のコード変換もサポートしていますが、サポートされるのは単純なコード変換のみです。

Promise などの ES6 機能の場合、TS を直接変換することはできないため、変換には babel が必要です。

依存パッケージをインストールします。

npm i -D @babel/core @babel/preset-env babel-loader core-js

合計 4 つのパッケージがインストールされました。

  • @babel/core: Babel のコアツール
  • @babel/preset-env: Babel の定義済み環境
  • @babel-loader: webpack の babel ローダー
  • core-js: core-jsは、古いブラウザが新しいES構文をサポートできるようにするために使用されます。

webpack.config.js 構成ファイルを変更する

モジュール: {
    ルール:
        {
            テスト: /\.ts$/,
            使用: [
                {
                    ローダー: "babel-loader",
                    オプション:{
                        プリセット: [
                            [
                                "@babel/プリセット環境",
                                {
                                    「ターゲット」:{
                                        "クローム": "58",
                                        "つまり": "11"
                                    },
                                    "corejs":"3",
                                    "useBuiltIns": "使用方法"
                                }
                            ]
                        ]
                    }
                },
                {
                    ローダー: "ts-loader",
                }
            ]、
            除外: /node_modules/
        }
    ]
}

このようにして、ts でコンパイルされたファイルは babel によって再度処理されます。

ほとんどのブラウザでコードを直接使用できるようにします。

ターゲットの構成オプションで互換性のあるブラウザのバージョンを指定することもできます。

これで、webpack を使用して TypeScript コードをパッケージ化およびコンパイルする方法についての説明は終わりです。webpack による TypeScript のパッケージ化とコンパイルに関するより関連性の高いコンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Webアプリケーション開発におけるTypeScriptの使用の詳細な説明
  • ホットアップデートを実装するためのWebsocket4.0+Typescriptメソッド
  • React+TypeScript+webpack4 マルチエントリ構成の詳細説明
  • TypeScript でシンプルな Web アプリケーションを作成する

<<:  Zabbixのインストールと展開の詳細な説明

>>:  MySQL: データの整合性

推薦する

Ubuntu の Docker で mysql5.6 をインストールする方法

1. mysql5.6をインストールする docker 実行 mysql:5.6すべてのアイテムのダ...

pdf.js を使用して Vue で PDF ファイルをプレビューする方法

ページ上で PDF をプレビューすると、一部のファイルは印刷またはダウンロードできません。現時点では...

Vue の foreach 配列と js の traversal 配列の書き方の説明

Vue foreach配列を記述し、jsで配列をトラバースする方法シナリオVueでAxiosを使用し...

Dockerイメージの作成、アップロード、プル、デプロイを理解するための記事

目次1. 画像1. 鏡とは何ですか? 2. 画像の構成と目的(1) Dockerファイル(2)スクラ...

MySQL の行レベルロックの詳細な例

序文ロックは、複数のスレッドを実行するときにリソースへのアクセスを強制的に制限するために使用される同...

Nginx gzip設定について

nginx がリソース圧縮を実現する原理は、ngx_http_gzip_module モジュールを介...

vue3 統合 API における vue2 の $refs の代替方法についての簡単な説明

vue2 プロジェクト開発の経験があれば、$refs に精通しているでしょう。 vue3 の急激なア...

nginx は画像表示の遅さとダウンロードの不完全さの問題を解決します

前面に書かれた最近、ある読者から、ブラウザからサーバーにアクセスすると、画像の表示が遅く、ブラウザに...

MySQL グリーンバージョン設定コードと 1067 エラーの詳細

MySQL グリーンバージョン設定コードと 1067 エラーMySQL エンコーディングを表示 &#...

マウスオーバーボタンアニメーションを実現する純粋な CSS3 パート 2

前の 2 つの章を終えて、ボタンのフローティング アニメーションについて新たな理解が得られましたか?...

MySQL 8.0.18 のさまざまなバージョンのインストールとインストール中に発生した問題 (要点の要約)

概要: MYSQLの問題解決記録:どのようなインストール方法 (rpm、gz、gz.xz) を使用す...

Docker コンテナ入門から夢中になるまで(推奨)

1. Docker とは何ですか?仮想マシンについては誰もが知っています。Windows に Li...

Linux システムコマンドのメモ

この記事では、Linux システム コマンドについて説明します。ご参考までに、詳細は以下の通りです。...

Javascriptのtry catchの2つの機能についてお話しましょう

プログラムは上から下へ順番に実行され、いくつかの制御文によって実行経路を変更することができます。制御...

MySQL InnoDB ReplicaSet の簡単な紹介

目次01 InnoDBレプリカセットの紹介02 InnoDBレプリカセットの制限03 導入前に知って...