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: データの整合性

推薦する

学生情報管理システムを実装するためのJavaScript+HTML

目次1. はじめに2. レンダリング3. コード4. 学生情報管理システムのメインインターフェース1...

美しいHTMLコードの書き方

美しい HTML コードの外観 美しい HTML コードの書き方。外国人が書いた記事: 美しい HT...

Vue elementUI フォームのネストされたテーブルと各行の検証の詳細な説明

目次エフェクト表示コードリンクキーコード表形式データコンポーネントのネスト検証方法リセット方法完全な...

Docker で MySQL データベースを使用して LAN アクセスを実現する

1. MySQLイメージを取得する docker pull mysql:5.6注: mysql5.7...

Linux に JDK1.8 をインストールするための詳細なチュートリアル

1. 設置前の清掃 rpm -qa | grep jdk rpm -qa | grep gcj yu...

JavaScript のスプレッド演算子とレスト演算子の違いの詳細な説明

目次レスト演算子とは何ですか? JavaScript 関数では REST 演算子はどのように機能しま...

MySQLクエリの文字セットの不一致の問題を解決する方法

問題を見つける最近、仕事で問題が発生しました。MySQL データベースにテーブルを作成するときに、ラ...

JavaScript でフォロー広告を実装するためのサンプルコード

フローティング広告は、ウェブサイト上で非常に一般的な広告形式です。フローティング広告は、ユーザーの閲...

WeChatアプレットはシンプルな計算機を実装する

WeChatアプレットの簡単な計算機は参考用です。具体的な内容は次のとおりです。 1. はじめに1....

MySQL 8.0.12 winx64 解凍バージョンのインストール グラフィック チュートリアル

mysql-8.0.12-winx64 解凍版のインストールを記録して、みんなで共有しました。 1....

Vueスロットの詳細な説明

1. 機能: 親コンポーネントが子コンポーネントの指定された位置に HTML 構造を挿入できるように...

JavaScript 配列重複排除問題の詳細な研究

目次序文 👀リサーチを始めましょう🐱‍🏍オリジナル🧶 indexOf を使用した元の方法の最適化 ✍...

EChartsマルチチャート連携機能の実装プロセス

表示するデータが多い場合、1 つのチャートに表示しても効果はよくありません。このとき、2 つのチャー...

Dockerでイメージ情報を表示する方法

この記事では、Dockerでイメージ情報を表示する方法を学ぶ必要があります。 1. imagesコマ...

商品クエリ機能を実現するJavaScript

この記事の例では、商品検索機能を実現するためのJavaScriptの具体的なコードを参考までに共有し...